Android 4.4系统的HTTP API错误? [英] Android 4.4 http api bugs?

查看:217
本文介绍了Android 4.4系统的HTTP API错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我决定开始测试与Android 4.4我的应用程序,发现Android的HTTP连接API是比以前更严格?我从未有过这个问题,我认为这是某种类型的bug。

我要连接到包含特定冰冷的标题响应Shoutcast一样播放。

有没有人见过这个问题?我怎样才能解决它得到什么呢?

本次测试使用的网址:

  http://50.117.121.162:80
 

异常logcat的:

  

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):在   com.android.okhttp.internal.http.RawHeaders.fromBytes(RawHeaders.java:308)   11-01 23:47:57.299:E / ConnectHelper(3081):在   com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:135)   11-01 23:47:57.299:E / ConnectHelper(3081):在   com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:644)   11-01 23:47:57.299:E / ConnectHelper(3081):在   com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:347)   11-01 23:47:57.299:E / ConnectHelper(3081):在   com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)   11-01 23:47:57.299:E / ConnectHelper(3081):在   com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse$c$c(HttpURLConnectionImpl.java:503)   11-01 23:47:57.299:E / ConnectHelper(3081):在   com.vblast.xiialive.media.streamers.ConnectHelper.connectWorker(ConnectHelper.java:176)   11-01 23:47:57.299:E / ConnectHelper(3081):在   com.vblast.xiialive.media.streamers.ConnectHelper.run(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响应?

I decided to start testing my app with Android 4.4 and noticed that the Android HTTP connection APIs are much stricter than before? I have never had this issue and I assume it is some type of bug.

I'm connecting to SHOUTcast broadcasts that contain the particular icy header response.

Has anyone seen this issue? How can I get around it?

URL used for this test:

http://50.117.121.162:80

Logcat of exception:

11-01 23:47:57.299: E/ConnectHelper(3081): java.net.ProtocolException: Unexpected status line: ICY 200 OK 11-01 23:47:57.299: E/ConnectHelper(3081): at 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.streamers.ConnectHelper.run(ConnectHelper.java:143) 11-01 23:47:57.299: E/ConnectHelper(3081): at java.lang.Thread.run(Thread.java:841)

解决方案

On Android 4.4 things did change under the hood and the none standard SHOUTcast ICY header response is no longer supported. Just like the Apache HTTPClient library.

What I had to do can be found on this post:
How to parse a none standard HTTP response?

这篇关于Android 4.4系统的HTTP API错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆