繁体   English   中英

Java:为UPnP重新创建SOAP请求

[英]Java: recreate an SOAP request for UPnP

我正在尝试使用UPnP中的肥皂调用事件。 我已经从网络上嗅到了这个命令,我想重现这个命令,但是我不知道从哪里开始,我应该使用哪个“框架/库”。

有什么建议可以在Java中完成此操作?

此代码需要复制:

POST /_urn-upnp-org-serviceId-SwitchPower.0001_control HTTP/1.1
SOAPACTION: "urn:schemas-upnp-org:service:SwitchPower:1#SetTarget"
CONTENT-TYPE: text/xml; charset="utf-8"
HOST: 192.168.1.18:1451
Content-Length: 347

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"      xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
  <u:SetTarget xmlns:u="urn:schemas-upnp-org:service:SwitchPower:1">
     <newTargetValue>0</newTargetValue>
  </u:SetTarget>
</s:Body>
</s:Envelope>HTTP/1.1 200 OK
EXT: 
CONTENT-TYPE: text/xml; charset="utf-8"
SERVER: Windows NT/5.0, UPnP/1.0
Content-Length: 290

<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"     xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <u:SetTargetResponse xmlns:u="urn:schemas-upnp-org:service:SwitchPower:1" />
  </s:Body>
</s:Envelope>

具体来说,此请求是对DimmableLight DCP的调用,因为我已经在这里回答了您

UPnP:intel:生成堆栈:java android:在网络灯示例上调用操作

是的,它是SOAP。 虽然绝对可以使用一些通用的SOAP工具集来重现它,但它无处可寻。 要实际发送请求,您需要知道DimmableLight设备在哪个套接字上公开其DCP。 这意味着控制点(您试图重做的请求的源)必须侦听来自UPnP网络的NOTIFY数据包。 SOAP不会帮助您。

我建议从@simonc提到的文档包中阅读UPnP-arch-DeviceArchitecture,以便在跳转到生成随机嗅探数据包之前,了解UPnP的工作原理。 然后使用现成的库之一。 我不能说Java,但是C ++ Platinum加载了许多易于理解的示例。 UPnP只是已知和广泛使用的技术的有据可查的合并。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM