UPnp запрос Windows Phone 8
Я пытаюсь сделать простое приложение DLNA/UPnp для Windows Phone 8. Все, что я получил сейчас, это приложение "Обозреватель устройств", которое отправляет XML в широковещательном режиме через определенный порт через Udp и получает ответы от всех устройств DLNA.
Далее я хочу отправить запрос на одно из этих устройств. Это должно быть через Udp (чтобы быть совместимым с UPnp), и запрос также является XML. Моя проблема в том, что когда я отправляю широковещательное сообщение, я использую это:
sendEvent = new SocketAsyncEventArgs();
sendEvent.RemoteEndPoint = new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900);
[...]
Но в запросе (как я хорошо понял) я должен отправить его по адресу:
http: //19...:2869/upnphost/udhisapi.dll?event=uuid:9f7f98d8-2e8e-495c-9126-02a9f8d8b253+urn:upnp-org:serviceId:ContentDirectory
это хорошо, чтобы слушать.
Я не знаю, как добиться этого в Windows Phone, так как я полагаю, что WebClient переходит через TCP. Есть идеи?
заранее спасибо
1 ответ
Вывод из вашей строки URL:
http ://19...:2869/upnphost/udhisapi.dll?event=uuid:9f7f98d8-2e8e-495c-9126-02a9f8d8b253+urn:upnp-org:serviceId:ContentDirectory
Вы пытаетесь подписать событие ContentDirectoryService на сервере Windows Media.
Я понимаю ABS_PATH
в SUBSCRIBE ABS_PATH HTTP/1.1
это действительно сбивает с толку во многих senerio, для некоторых стандартных реализаций httpClient обычно принимают только URL и разбирают в HOST
а также REL_PATH
,
Не знаком с C#, но в этом есть ли способ сделать PUT с WebClient? есть способ переопределить WebClient.UploadString
Метод, так что вы можете написать свой собственный метод и путь.