最近做一个爬虫项目,需要curl请求第三方系统,其中一个请求放到postman的时候秒回,代码curl请超时,打印错误信息:empty reply from server
翻阅网上资料无果,只能用排除法,去掉请求的一些配置看是哪里影响了,最后发现去掉post data 后请求秒回,虽然返回的是请求失败,但是问题就错在Post data上面了
感觉观察发现请求的数据比以往的参数要大,猜测是POST数据过大,再次翻阅资料,以下方法可以解决(注意是在原来的头部信息中添加一个请求头):
在使用phpcurl post数据的时候,当数据超过1k的时候,会失败,不会直接发起请求,而是分为两步:
一,发送一个请求,包含“Expect:100-continue”头域,询问SERVER是否愿意接收
二,接收到SERVER返回的 100-continue应答以后,才可以继续POST数据
解决办法:
添加curl请求头
curl_setopt($ch,CURLOPT_HTTPHEADER,array(“Expect:”));