症状:php curl调用https出错
排查方法:在命令行中使用curl调用试试。
原因:服务器所在机房无法验证SSL证书。
解决办法:跳过SSL证书检查,代码如下:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
症状:php curl调用curl_exec返回bool(false),命令行curl调用正常。
排查方法:var_dump(curl_error($ch));
返回:string(23) "Empty reply from server"
再排查,代码如下:
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
返回:HTTP/1.1 100 Continue Connection: close
原因:php curl接收到HTTP 100就结束了,应该继续接收HTTP 200
解决方案,代码如下: curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));