Android 4.4 http api bugs?

Я решил начать тестирование своего приложения с Android 4.4 и заметил, что API-интерфейсы HTTP HTTP гораздо более строгие, чем раньше? У меня никогда не было этой проблемы, и я предполагаю, что это какая-то ошибка.

Я подключаюсь к трансляциям SHOUTcast, которые содержат конкретный ледяной ответ заголовка.

Кто-нибудь видел эту проблему? Как я могу обойти это?

URL, используемый для этого теста:

http://50.117.121.162:80 

Логарифм исключения:

11-01 23: 47: 57.299: E / ConnectHelper (3081): java.net.ProtocolException: Неожиданная строка состояния: ICY 200 OK 11-01 23: 47: 57.299: E / ConnectHelper (3081): на com.android. Okhttp.internal.http.RawHeaders.setStatusLine (RawHeaders.java:108) 11-01 23: 47: 57.299: E / ConnectHelper (3081): at com.android.okhttp.internal.http.RawHeaders.fromBytes (RawHeaders.java : 308) 11-01 23: 47: 57.299: E / ConnectHelper (3081): at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders (HttpTransport.java:135) 11-01 23: 47: 57.299: E / ConnectHelper (3081): at com.android.okhttp.internal.http.HttpEngine.readResponse (HttpEngine.java:644) 11-01 23: 47: 57.299: E / ConnectHelper (3081): at com.android.okhttp. Internal.http.HttpURLConnectionImpl.execute (HttpURLConnectionImpl.java:347) 11-01 23: 47: 57.299: E / ConnectHelper (3081): at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse (HttpURLConnectionImpl.java:296 ) 11-01 23: 47: 57.299: E / ConnectHelper (3081): at com.android.okhttp.internal.http.HttpURLConnectionImpl. GetResponseCode (HttpURLConnectionImpl.java:503) 11-01 23: 47: 57.299: E / ConnectHelper (3081): at com.vblast.xiialive.media.streamers.ConnectHelper.connectWorker (ConnectHelper.java:176) 11-01 23: 47: 57.299: E / ConnectHelper (3081): at com.vblast.xiialive.media.stream (ConnectHelper.java:143) 11-01 23: 47: 57.299: E / ConnectHelper (3081): в java .lang.Thread.run (Thread.java:841)

В Android 4.4 все изменилось под капотом, и ни один стандартный ответ заголовка SHOUTcast ICY больше не поддерживается. Также как библиотека Apache HTTPClient.

То, что мне нужно было сделать, можно найти на этом посту:
Как разобрать стандартный HTTP-ответ?

Ответ Jona прав, но если вы используете AACPlayer ( https://code.google.com/p/aacplayer-android/ ) для воспроизведения вашего SHOUTcast, вот более простое решение: https://code.google.com/ р / aacdecoder-андроида / вики / HandlingShoutcastStreams

Кроме того, мне нужно было изменить свой URL-адрес с « http://example.org » на «ice: //example.org»

Я реализовал решение, основанное на Apache HttpClient , здесь вы можете найти его как суть .

Вот как его использовать:

 IcyGetRequest request = new IcyGetRequest(urlStr); HttpResponse response = request.get(); int responseCode = response.getStatusLine().getStatusCode();