WebRequest для Shoutcast генерирует исключение «неверный или нераспознанный ответ» - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь прочитать метаданные из потока shoutcast, используя ASP.net WebAPI, ядро ​​.net 2.1.Все, что мне нужно, это заголовки, а не аудиоданные.Я обнаружил, что серверы Shoutcast 2+ предоставляют статистическую страницу XML, но по соображениям совместимости мне нужно решить эту проблему, чтобы я мог также поддерживать v1./7.html не дает название и жанр.Ниже приведен фрагмент соответствующего кода:

HttpWebRequest request = null;
HttpWebResponse response = null;
request = (HttpWebRequest)WebRequest.Create(server);
request.Headers.Clear();
request.Headers.Add("GET", "/ HTTP/1.0");
// needed to receive metadata information
request.Headers.Add("Icy-MetaData", "1");
request.UserAgent = "WinampMPEG/5.09";

response = (HttpWebResponse)request.GetResponse();
info.Title=response.Headers["icy-name"];
info.Genre=response.Headers["icy-genre"];

Когда я запускаю этот код в IIS Express или публикую и запускаю в IIS, я получаю эту ошибку:

An unhandled exception occurred while processing the request.
HttpRequestException: The server returned an invalid or unrecognized response.
System.Net.Http.HttpConnection.ThrowInvalidHttpResponse()

WebException: The server returned an invalid or unrecognized response.
System.Net.HttpWebRequest.GetResponse()

Я пробовал WebClientи StreamReader, но проблема, кажется, постоянна.Тем не менее, я попробовал тот же код в консольном приложении, и он, кажется, работает нормально.

Как я могу заставить это работать через WebAPI на IIS?

1 Ответ

0 голосов
/ 26 апреля 2019

У меня была такая же проблема.Я использовал HttpClient и PostAsync, чтобы исправить эту проблему.

Следует отметить, что изначально я пробовал свой код с использованием инфраструктуры dot net, а не ядра dot net, и он работал нормально, поэтому я думаю, что HttpWebResponse не совместим с dotЧистое ядро ​​в некоторых случаях.Посмотрите на ссылки ниже, если использование HttpClient все еще не решает вашу проблему.Я надеюсь, что это помогает.https://github.com/dotnet/corefx/issues/14897

https://github.com/dotnet/corefx/issues/30040

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...