我使用curl从API获取数据,每次都返回不同的guid。我使用以下代码:
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,'https://aapiconvention2016.sched.org/api/auth/login?api_key=f8bf836da29b0831ff1f03fce3c64462&username=*****&password=****');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'API HIT');
$query = curl_exec($curl_handle);
curl_close($curl_handle);
echo $query
之前它返回500内部错误。我使用上面的代码修复它。但现在我没有得到任何错误或输出。
我不明白为什么它不起作用,请帮帮我
提前谢谢。答案 0 :(得分:1)
请添加此行
,将ssl验证设为falsecurl_setopt($curl_handle,CURLOPT_SSL_VERIFYPEER, false);
然后你的代码将是这样的:
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,'https://aapiconvention2016.sched.org/api/auth/login?api_key=f8bf836da29b0831ff1f03fce3c64462&username=*****&password=****');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'API HIT');
curl_setopt($curl_handle,CURLOPT_SSL_VERIFYPEER, false);
$query = curl_exec($curl_handle);
curl_close($curl_handle);
echo $query;
答案 1 :(得分:1)
您可以使用curl_errno
获取最后一个错误代码,使用curl_error
获取最后一个错误字符串。这些给了我超时错误。
因此,您可以通过将默认卷曲超时增加到例如10秒和整个功能超时到例如15秒:
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl_handle, CURLOPT_TIMEOUT, 15);