Ошибка в реализации образца UPnP iOS?

Я работаю над реализацией устройства UPnP в iOS и скачал исходный код отсюда. Используя образец, я могу обнаружить устройства 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 ответ

Не уверен, что это решит вашу проблему, но всего пару дней назад я обнаружил, что новой строкой по умолчанию в Windows является "\r\n" (ascii 13 и 10), а новой строкой по умолчанию в iOS является "\n" (ascii Только 10)

Это привело к тому, что некоторые реализации UPnP НЕ отвечали на мои поисковые запросы. Стандарт UPnP требует "\ r \ n" в общем случае для новой строки. Возможно, вы захотите взглянуть на фактические байты и посмотреть, всегда ли 13 и 10 вместе, или вы получаете только 10.

Другие вопросы по тегам