java304是什么错误_java.net.ProtocolException:意外的状态行:{} HTTP/1.1 422不可处理的实体...

的okHttp客户端设置以下方式:

mDefaultClient = new OkHttpClient.Builder()

.readTimeout(getSocketTimeOut(), TimeUnit.MILLISECONDS)

.writeTimeout(getSocketTimeOut(), TimeUnit.MILLISECONDS)

.connectTimeout(getSocketTimeOut(), TimeUnit.MILLISECONDS)

.followRedirects(true)

.connectionPool(new ConnectionPool(MAX_TOTAL_CONNECTION, 5, TimeUnit.MINUTES))

.addNetworkInterceptor(new StethoInterceptor())

.followSslRedirects(true)

.build();

当连接设置为保持活动(默认设置),一些请求失败,出现以下Java异常:

java.net.ProtocolException: Unexpected status line: {}HTTP/1.1 422 Unprocessable Entity

java.net.ProtocolException: Unexpected status line: {}HTTP/1.1 200 OK

这些请求总是失败,出现此异常,如果该请求恰好在它返回304未修改响应与一个空的正文。

没有这304响应,这些请求被成功处理。

我已经阅读无处不在,解决方案是将连接关闭标头添加到请求。

但是,我不想这样做。我们想要使用的连接池几乎是无用的。

保持连接正常运行对我们来说是一种好处,我们希望保持与OkHttp相同的优势。

服务器似乎没有发送错误响应,通过发送邮递员请求到服务器进行验证,这不会失败。另外,我们以前的Apache客户端正确处理了这些请求。

添加拦截器(网络或其他)似乎不起作用。我尝试填充正文或为304请求设置'Content-Length'为0,但下一个请求总是失败。

我有什么选择?

+0

然后,前面的304响应格式不正确,或者您的库不正确地处理它。你有踪迹吗? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值