2016-06-15 1 views
-1

私のコードを持つ配列:ますcurl_setopt():あなたは、どちらか合格しなければならないオブジェクトまたはCURLOPT_HTTPHEADER引数

private static $API_ACCESS_KEY = 'AIzaSyDG3fYAj1uW7VB-wejaMJyJXiO5JagAsYI'; 
$headers = array(
      'Authorization: key=' .self::$API_ACCESS_KEY, 
      'Content-Type: application/json'); 

private function useCurl(&$model, $url, $headers, $fields = null) { 
      // Open connection 
       $ch = curl_init(); 
      if ($url) { 
       // Set the url, number of POST vars, POST data 
       curl_setopt($ch, CURLOPT_URL, $url); 
       curl_setopt($ch, CURLOPT_POST, true); 
       curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

      // Disabling SSL Certificate support temporarly 
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
      if ($fields) { 
       curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
      } 

      // Execute post 
      $result = curl_exec($ch); 
      if ($result === FALSE) { 
       die('Curl failed: ' . curl_error($ch)); 
      } 

      // Close connection 
      curl_close($ch); 

      return $result; 
    } 
} 

がエラー:

curl_setopt(): You must pass either an object or an array with the CURLOPT_HTTPHEADER argument

+0

print_r($ headers);を使用して '$ headers'の値を出力し、コメント内にprint文の出力を追加して質問を明確にしてください。 – Daenarys

+0

$ヘッダ=配列( \t \t '認証:キー=' .self :: $のAPI_ACCESS_KEY、 \t \t 'コンテンツタイプ:アプリケーション/ JSON' \t)。 \t \t \t print_r($ headers); Answer:Array([0] => Authorization:key = AIzaSyDG3fYAj1uW7VB-wejaMJyJXiO5JagAsYI [1] =>コンテンツタイプ:application/json) – Vinupriya

答えて

0

$ヘッダは単にararyではありません。それが配列であることを確認し、そうでない場合はInvalidArgumentExceptionをスローします。

private function useCurl(&$model, $url, $headers, $fields = null) { 
if(!is_array($headers)){throw new InvalidArgumentException('headers MUST be an array!');} 
... 

または、PHP7のように、

private function useCurl(&$model, $url, array $headers, $fields = null) { 
... 

、あなたが真上$ヘッダと呼ばれる変数を宣言しながら、その関数定義外のため、機能の範囲外、ということに注意してください。このような。関数の$ headersは入力引数#3です

関連する問題