我们正在使用 Here 地图的批量地理编码 api,当下载流中的未压缩结果时,我们希望直接进一步重新处理结果。
一段时间后(大约 18 分钟),我们收到一个远程协议错误“对等关闭连接而不发送完整的消息正文(不完整的分块读取)”(使用带有异步客户端和 Stream.aiter_lines 的 python httpx 库,因此使用了一些特定的错误消息也许)。
18 分钟似乎是在这里 api 端配置的一个奇怪的超时,那么我在这里看到了什么?只是一个小嗝嗝?我们这边出了什么问题吗?
感谢您的帮助
错误消息“对等关闭连接而没有发送完整的消息正文(不完整的分块读取)”通常表示服务器(或某些中介)在发送完整响应之前关闭了连接。发生这种情况的原因有多种,并且故障排除通常需要结合检查服务器日志、客户端日志以及可能的任何中介(如代理或负载平衡器)。
以下是一些可帮助您解决问题的步骤和注意事项:
服务器端问题:
超时:
中介:
保持活动标头:
分块传输编码:
客户端日志记录:
httpx
库的日志记录详细程度,以捕获有关请求和响应的更多详细信息。网络问题:
在不同环境中重现:
库或框架:
httpx
库。有时,更新库可以解决已知问题。httpx
库的版本是否存在任何可能与此错误相关的已知问题。使用不同的客户端进行测试:
httpx
库,请考虑使用不同的 HTTP 客户端进行测试,例如 requests
(用于同步调用)或其他异步客户端。如果您已完成这些步骤但仍然遇到问题,请提供有关您的设置、代码以及发生错误的确切情况的更具体详细信息,可以帮助进一步缩小问题范围。