curl 错误 18 - 传输关闭,剩余未完成的读取数据
当使用curl从URL检索数据时,我有时会(在80%的情况下)得到
错误 18:传输关闭,剩余未完成的读取数据
然后,返回的部分数据将丢失。奇怪的是,当CURLOPT_RETURNTRANSFER设置为false时,这种情况永远不会发生,即curl_exec函数不返回数据,而是直接显示内容。
可能是什么问题?我可以设置一些选项来避免这种行为吗?
当使用curl从URL检索数据时,我有时会(在80%的情况下)得到
错误 18:传输关闭,剩余未完成的读取数据
然后,返回的部分数据将丢失。奇怪的是,当CURLOPT_RETURNTRANSFER设置为false时,这种情况永远不会发生,即curl_exec函数不返回数据,而是直接显示内容。
可能是什么问题?我可以设置一些选项来避免这种行为吗?
错误字符串正是libcurl所看到的:由于它正在接收分块编码流,因此它知道块中何时还有数据要接收。当连接关闭时,libcurl 知道上次接收的块不完整。然后你得到这个错误代码。
对于未修改的请求,您无法避免此错误,但是您可以尝试通过发出HTTP 1.0请求来解决此问题(因为分块编码不会发生),但事实是,这很可能是服务器或网络/设置中的缺陷。
我敢打赌这与对等体发送的错误标头有关。我的建议是让 curl 自己设置长度。Content-Length