2012-05-14 16 views
0

CURLOPT POSTFIELDSを使用してHTTPリクエストで何かを送信しようとしましたが、データが転送されていないようです。何か不足していますか?CURLOPT POSTFIELDSがHTTPリクエストにデータを添付していません。

 function sendTestCase($caseArgs){ 
     try{ 
      $ch = curl_init(); 
      $sendData = http_build_query($caseArgs); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, $sendData); 
      curl_setopt($ch, CURLOPT_URL, 'http://localhost:8888/testrail/index.php?/miniapi/add_case/'); 
      curl_setopt($ch, CURLOPT_HEADER, false); 
      curl_setopt($ch, CURLOPT_POST, 1); 

      curl_setopt($ch, CURLOPT_HTTPHEADER,array("Expect:")); 

      curl_exec($ch); 
     } 
     catch (HttpException $ex){ 
      echo $ex."<-Exception"; 
} 

curl_close($ch); 
    } 
+0

'$ caseArgs'の値は何ですか? –

+0

caseargsには何があり、単に配列として渡すのはなぜですか? –

+0

配列です。 POST引数として渡す必要があるのは、APIが要求しているものなのでです。また、post引数にもURLエンコーディングが必要です...これは、少なくとも – BlackHatSamurai

答えて

1

POSTFIELDSは完全に配列を受け入れることができ、カールはあなたのためにURLビルディングを行います。現状では、カールする文字列を渡しています(フォームの値を含む)が、フィールド名を渡さないので、カールは裸の文字列を送ります。代わりにこれを試してください:

curl_setopt($ch, CURLOPT_POSTFIELDS, $caseArgs); 
+0

と言えば、イライラしています!ご協力ありがとうございました! – BlackHatSamurai

関連する問題