首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用UPnP动作

调用UPnP动作
EN

Stack Overflow用户
提问于 2013-09-24 02:54:14
回答 1查看 979关注 0票数 0

我正在尝试与网络上的UPnP打印机进行交互。我可以发现打印机,获取它上的可用服务,甚至可以获得服务可用的操作列表。然而,这正是我被困的地方。

例如,有一个动作GetPrinterAttributes,我知道我需要创建一个http POST来发送一个请求动作的信封,但是我不知道那是什么样子。我希望有人能帮我找到文件或其他东西,让我重新开始工作。

基于其他示例,我尝试创建请求有效负载如下:

代码语言:javascript
复制
<s:Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <s:Body>
        <u:GetPrinterAttributes xmlns:u="urn.schemas-upnp-org:device:Printer:1">
        </u:GetPrinterAttributes>
    </s:Body>
</s:Envelope>

这是我所能得到的,但我不知道这些标签是什么意思。希望能在那里得到一些帮助。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-24 08:12:47

您实际上是从零开始实现一个UPnP控制点:o。必须为您的平台提供可用的UPnP库,这样可以将所需工作量减少到1-5%。但我猜你知道所以继续..。我只是想让您明白,UPnP不是最简单的协议,为单个应用程序实现它也没有什么意义。

我将向您介绍与我为SSDP:UDA 1.1 pdf,特别是3.1.1 SOAP Profile所做的相同的文档。您也可以阅读实际的SOAP规范,但我认为UPnP文档已经足够完整了。UDA定义了SOAP概要文件,并包含了几个信封示例。它还解释了包含HTTP的内容必须是什么样子(特别是所需的标头)。

关于信封(没有见过打印机规范):GetPrinterAttributes命名空间是错误的,因为方法是在服务中定义的,而不是在设备中定义的。它还缺少了初始的<?xml version="1.0">行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18972224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档