我在PHP中遇到CURLINFO_HTTP_CODE
的奇怪问题,即使cURL请求本身成功,它也返回0。基本上我正在使用for循环来对每个广告系列ID执行基本出价的更改。然后我尝试捕获请求的HTTP状态代码不等于200的情况并将其显示给浏览器。
问题是return var_dump($this->info)
返回int(0)
,如果请求成功,则没有意义。我通过向广告系列ID提出GET请求来检查这一点。我正在使用的代码如下:
class curl
{
public $info;
public $json_output;
public function curlPut($url, $JSON, $token)
{
$ch = curl_init($url);
$popt = array(
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_POSTFIELDS => $JSON,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization:'.$token.''
));
curl_setopt_array($ch, $popt);
$this->info = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$this->json_output = curl_exec($ch);
curl_close($ch);
return var_dump($this->info);
}
};
有谁知道为什么我的脚本会出现这种行为?
任何评论都将不胜感激!
谢谢,
萨姆
答案 0 :(得分:0)
您在执行请求之前尝试获取状态代码。
相反,交换:
$this->json_output = curl_exec($ch);
$this->info = curl_getinfo($ch, CURLINFO_HTTP_CODE);