0

私は 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>

誰でもこれを解決する方法を教えてもらえますか?

4

1 に答える 1

0

これで問題が解決するかどうかはわかりませんが、ほんの数日前に、Windows のデフォルトの改行が "\r\n" (ascii 13 および 10) であり、iOS のデフォルトの改行が "\n" (ascii 10のみ)。

これにより、一部の UPnP 実装が検索要求に応答しなくなりました。UPnP 標準では、通常、改行に「\r\n」が必要です。実際のバイト数を調べて、13 と 10 が常に一緒になっているかどうか、または 10 しか取得していないかどうかを確認することをお勧めします。

于 2015-03-03T22:20:25.837 に答える