我正在使用curl从其他服务中获取令牌,但它会毫无理由地死掉。
它死了,所以没有输出,也没有错误日志。在chrome上只是ERR_EMPTY_RESPONSE。
这是我的代码。
$url = ".......";
$is_post = false;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $is_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch); <----------------------dies here
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "status_code:".$status_code;
curl_close ($ch);
我已经完成了下面的示例,并且没有遇到任何麻烦。
$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
当我打印$ url并将其放到浏览器中时,我认为它工作得很好(显示了我的需求)。
有人有任何线索吗?
更新
我的curl版本是7.19。而且因为HTTP可以正常工作,所以这绝对是HTTPS问题。
我尝试过
curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cert/file/cacert.pem');
和
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
但是这些都不起作用。