我必须使用GET请求访问API,但结果是:
301永久移动。
这是我的代码:
$curl = curl_init();
$url="https://xxx.yyy.com/zzz/v1.0";
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer sadhuUasjhda"
),
));
$result = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
print_r($result);exit;
我已经读过这个问题可以通过添加CURLOPT_POSTREDIR
来解决,但只有在我使用POST时才能解决。
我尝试使用CURLOPT_FOLLOWLOCATION
,但我遇到了另一个问题,结果就像
CURL错误#:SSL证书问题:无法获得本地颁发者证书。
仅供参考,我使用的是Windows和XAMPP。然后我尝试按照post的说明进行操作,但结果仍然相同。
答案 0 :(得分:1)
感谢Rendy Eko Prastiyo,解决方案是将CURLOPT_SSL_VERIFYPEER设置为false并将CURLOPT_FOLLOWLOCATION设置为true,因此代码为
$curl = curl_init();
$url="https://xxx.yyy.com/zzz/v1.0";
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_HTTPHEADER => array(
"authorization: Bearer sadhuUasjhda"
),
));
$result = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
print_r($result);exit;