okhttp:如何处理来自服务器的未请求/意外 100(继续)响应?

Posted

技术标签:

【中文标题】okhttp:如何处理来自服务器的未请求/意外 100(继续)响应?【英文标题】:okhttp: how to handle unrequested/unexpected 100 (continue) response from server? 【发布时间】:2017-09-22 20:51:56 【问题描述】:

TLDR:有没有办法强制 OkHttp 正确处理意外/未请求的 100 Continue HTTP 响应?

我在 android 上使用 OkHttp 3.8.1 发布到行为不佳的服务器。

即使请求不包含“Expect: 100-continue”标头,Web 服务器也会返回 100 Continue 响应。 OkHttp 没有继续发送请求正文,然后得到实际的 (200) 响应,而是停在那里并在我的 okhttp.Callback 中发回 100 Continue 响应。

我尝试在请求中明确包含“期望:100-继续”以触发 OkHttp 的逻辑,但服务器(可能由于某些错误)声称标头格式错误并拒绝请求。我也尝试发送“Expect:”(无值),但服务器仍然发送 100 Continue 响应,并且 OkHttp 停在那里。

其他 HTTP 客户端(到目前为止我已经测试了 3 个)可以与该服务器正常通信。他们正确处理了 100 Continue 响应,即使他们没有在请求标头中看到“Expect: 100-continue”。有没有我可以设置的选项,或者我可以编写的拦截器,让 OkHttp 做同样的事情?

【问题讨论】:

【参考方案1】:

听起来我们可以在 OkHttp 中修复。这很奇怪,服务器坏了,但如果其他客户端处理它,OkHttp 也应该处理。

请报告那里的错误?

【讨论】:

以上是关于okhttp:如何处理来自服务器的未请求/意外 100(继续)响应?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 Android Java 上的异步?

Swift Alamofire 如何处理来自循环的所有请求

如何处理来自服务器(节点 js)中表单的数据? [复制]

Express 和 React Routes 如何处理来自浏览器的初始 GET 请求?

当事件循环等待数据库操作时,如何处理对 nodejs 服务器的传入请求

意外断电后,Zabbix_proxy 重启无任何相关进程,如何处理?| 运维进阶