导致java.net.ProtocolException的APN:意外的状态行

时间:2016-06-22 21:31:23

标签: android http retrofit okhttp3

我遇到的问题是,我的一些要求是通过蜂窝网络进行的。我已经隔离了每次都会发生的具体案例。我从POST开始,然后使用PATCH跟随它,导致以下错误:

<-- HTTP FAILED: java.net.ProtocolException: Unexpected status line: <html>

在Wifi和其他手机网络上不会发生这种情况。我的手机提供商使用APN,我认为这会引起这个问题。

两个请求都期望JSON响应,因此看到html标记非常奇怪。我们检查了服务器日志,它正在成功处理第二个请求,但没有显示任何问题。通过阅读其他帖子我的理解是,这与线程池因先前的请求而变得腐败有关。解决问题的解决方案是添加以下标题connection: close,但这不是可接受的永久解决方案。

我们目前正在使用标准HTTP。我们推测,一旦我们切换到HTTPS,APN将无法篡改任何东西,因此这个问题将自行解决。直到那个时候,我们正在寻找解决方案。

我的问题:我们如何解决这些失败请求的问题?假设它是网络APN,我们是否在正确的轨道上?

在修补程序失败之前发生的POST响应标头。

D/OkHttp: Server: nginx/1.8.1
D/OkHttp: Date: Wed, 22 Jun 2016 19:55:16 GMT
D/OkHttp: Content-Type: application/json;charset=UTF-8
D/OkHttp: Expires: 0
D/OkHttp: Cache-Control: no-cache, no-store, max-age=0, must-revalidate
D/OkHttp: Access-Control-Allow-Headers: x-requested-with,accept,content-  type,authorization
D/OkHttp: X-XSS-Protection: 1; mode=block
D/OkHttp: Pragma: no-cache
D/OkHttp: X-Frame-Options: DENY
D/OkHttp: Access-Control-Allow-Origin: *
D/OkHttp: X-Content-Type-Options: nosniff
D/OkHttp: Access-Control-Max-Age: 3600
D/OkHttp: Access-Control-Allow-Methods: POST, GET, PUT, PATCH, OPTIONS,   DELETE
D/OkHttp: Transfer-Encoding: chunked
D/OkHttp: Proxy-Connection: keep-alive
D/OkHttp: {"id":970,"type":"SMS","subject":"+1555555555","authenticationToken":"CTUQ7QuKJs1l58ji6OnDPJY6UGKuTBU2VF"}

0 个答案:

没有答案