排查方法:在命令行中使用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); |
返回:
HTTP/1.1 100 Continue
Connection: close
原因:php curl接收到HTTP 100就结束了,应该继续接收HTTP 200
解决方案:
代码如下 | 复制代码 |
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); |