2016-05-06 29 views
1

PHPでCURLINFO_HTTP_CODEという奇妙な問題が発生しています。これは、cURLリクエスト自体が成功したにもかかわらず0を返しています。基本的には、forループを使用してすべてのキャンペーンIDの基本入札単価を変更しています。次に、リクエストのHTTPステータスコードが200ではないケースをキャッチして、これらをブラウザに表示しようとしています。PHPで間違ったステータスコードを出力するCURLINFO_HTTP_CODEの問題

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

あなたは、要求を実行してきた前に、ステータスコードを取得しようとしています。

代わりに、スワップ:

$this->json_output = curl_exec($ch); 
$this->info = curl_getinfo($ch, CURLINFO_HTTP_CODE);