实施UPnP iOS示例时出错?

时间:2014-11-14 11:08:17

标签: ios upnp upnpx

我正在开发iOS中的UPnP设备,我已经从here下载了源代码。使用该示例我能够发现网络上的UPnP设备,但是当我尝试获取设备的描述时,我遇到了问题。我没有更改默认代码中的任何内容,但我仍然遇到此问题。

请求:

<?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:GetSortCapabilities xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
</u:GetSortCapabilities></s:Body></s:Envelope>

回复:

错误(SoapAction):得到非200响应:500。数据:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode>
<faultstring>UPnPError</faultstring><detail>
<u:UPnPError xmlns:u="urn:schemas-upnp-org:control-1-0">
<u:errorCode>801</u:errorCode>
<u:errorDescription>Access denied</u:errorDescription>
</u:UPnPError></detail>
</SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

有人可以建议我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

不确定这是否能解决您的问题,但就在几天前,我发现Windows中的默认换行符是&#34; \ r \ n&#34; (ascii 13和10)和iOS中的默认换行符是&#34; \ n&#34; (仅限ascii 10)。

这导致一些UPnP实现不响应我的搜索请求。 UPnP标准要求&#34; \ r \ n&#34;一般来说换行。你可能想查看实际的字节数,看看13和10是否总是在一起,或者你是否只得到10。