Клиент Windows 8 для сервера SHOUTcast

Эти приложения можно получить метаданные Shoutcast.

В некоторых случаях возникает исключение «Сервер совершил нарушение протокола. Section = ResponseStatusLine».

Пример запроса:

GET http://173.244.215.162:8300/;stream.nsv HTTP/1.1
GET: / HTTP/1.0
Icy-MetaData: 1
User-Agent: WinampMPEG/5.09
Host: 173.244.215.162:8300
Connection: Keep-Alive

ответ:

ICY 200 OK
icy-notice1: <BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2: SHOUTcast Distributed Network Audio Server/Linux v1.9.8<BR>
icy-name: 100Hitz - Top 40
icy-genre: Various
icy-url: http://www.100hitz.com
content-type: audio/mpeg
icy-pub: 1
icy-metaint: 32768
icy-br: 128

Чтобы решить эту проблему, я могу использовать эти:

<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>

в моем файле App.config, но в приложении магазина Windows 8 Я не могу.

Но MediaElement прекрасно работает с указанным выше URL (запросом).

Есть ли способ обойти это ограничение? (C ++ lib или какой-то другой).

Благодарю.

**

UPD:

**
Я нашел REST SDK для C ++ (Касабланка).
Библиотека позволяет получить ответ без исключения, но все же имеет проблему:

http_client client(L"http://173.244.215.162:8300/;stream.nsv");
http_request request(methods::GET);
request.headers().add(L"GET",L"/ HTTP/1.0");
request.headers().add(L"Icy-MetaData",L"1");

client.request(request).then([](http_response response)
{
...
}

Заголовки ответа отображаются как часть responce.body();
Есть ли способ игнорировать HTTP RFC?
Или Как я могу сделать некоторую предварительную обработку, чтобы получить правильные заголовки ответа.
Благодарю.

UPD:

Решите эту проблему с помощью ручного анализа заголовков.
Все еще жду лучшего решения.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]