我正在尝试使用cURL for PHP从API获取数据。 当我执行以下脚本时,cURL似乎没有等待请求。
它立即返回空字段,该字段无法填充。
function request($cityName)
{
$key = "abc";
$api = "https://...?api-key=$key&format=json&city=$cityName";
$api = urldecode(trim($api));
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $api);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT, 'abc.com');
$ret = curl_exec($curl);
$response = json_decode($ret);
var_dump($response);
curl_close($curl);
}
答案 0 :(得分:0)
试试这个,不要使用urldecode
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($curl, CURLOPT_USERAGENT, 'abc.com');
$server_output = curl_exec($ch);
curl_close($ch);
print_r($server_output);
答案 1 :(得分:0)
OAuth扩展使用curl发出请求。默认情况下,CURL通常会验证SSL证书,以查看其是否为已接受的CA颁发的有效证书。为此,curl使用一组捆绑的CA证书。
您可以禁用SSL检查($ oauth-> disableSSLChecks())。或者确保您拥有当前版本的卷曲。 More information关于卷曲认证验证。
答案 2 :(得分:-1)
由于低速连接,cURL有可能取消请求。
如果CURLOPT_LOW_SPEED_TIME秒的平均传输速率低于CURLOPT_LOW_SPEED_LIMIT字节/秒,则会发生这种情况。
尝试以下方法:
foreach
根据您的要求更改上述选项的值。