2012-02-23 11 views
5

PHPスクリプトでCURLを使用してWebフォームをクエリするのは難しいです。私は、ウェブサーバーが好きではないものを送っていると思います。 CURLが本当に送るものを見るために、私はウェブサーバーに行くメッセージ全体を見たいと思っています。CURLがPHPスクリプトから送信するものを表示

完全な出力を得るためにCURLを設定するにはどうすればよいですか?

私は

curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 

をしましたが、それオンイルは私のヘッダの一部を提供します。メッセージの内容は表示されません。

答えて

3

感謝しますcurl_setopt()を呼び出すことによって、ハンドルに CURLINFO_HEADER_OUTオプションを追加します!結局のところ、彼らはそれが不可能だと言う。私は道を下り、Wiresharkに慣れ親しんだ。簡単な仕事ではありませんが、努力する価値があります。

+0

データが暗号化されているため、httpsエンドポイントをリクエストしてもWiresharkは役に立ちません。 –

-1

コンテンツを欲しがっているのであれば、単にログに記録できないのですか?私は私のAPIのための同様のものをやっていることは、私はcurl_getinfoを使用することをお勧めします

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, self::$apiURL); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_POST, count($dataArray)); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString); 

$logger->info("Sending " . $dataString); 
self::$results = curl_exec($ch); 
curl_close($ch); 

$decoded = json_decode(self::$results); 
$logger->debug("Received " . serialize($decoded)); 

それとも

curl_setopt($ch, CURLOPT_STDERR, $fp); 
+0

これは私が探しているものではありません。 XDebugで変数を確認できますが、問題はありません。 CURLによって送信されるHTTPリクエスト、ヘッダ、およびコンテンツ全体を表示したい – BetaRide

+1

@BetaRide私が知っている限り、WireSharkやtcpdumpを使わずに内容全体を見ることはできません。一番近いのは、ヘッダーとコンテンツを一緒に表示することです。 – Bot

-2

を試してみてください呼び出します。

<?php 
curl_exec($ch); 
    $info = curl_getinfo($ch); 
     if (!empty($info) && is_array($info) { 
      print_r($info); 
      } else { 
        throw new Exception('Curl Info is empty or not an array'); 
     }; 
?> 
+0

これは、応答に関する詳細だけを示しています。私の必要なのは、リクエストに関するすべての詳細です(つまり、ウェブサーバーに行くもの)。 – BetaRide

1

CURLINFO_HEADER_OUTを試しましたか?

curl_getinfoのためのPHPマニュアルを引用:

CURLINFO_HEADER_OUT - 送られたリクエスト文字列を。これが機能するためには、すべての答えを

+0

マニュアルは正確に言うと、ヘッダのみです。しかし、私はすべてのもの、ヘッダーと内容が必要です。 – BetaRide

+0

POST以外のアドレスにデバッグしてデバッグするのはなぜですか? cURLが本当に何かをねじ込むと、とにかくうそをつくかもしれません。 –

+0

さらに、ヘッダーに関する可能性もはるかに高いです。ウェブフォームを投稿したいと思えば(あなたがコントロールしていないサイトでは、私は推測しています)、クッキーの問題ではないと確信していますか?またはUser-Agentなどです。または、他の何か。 コード全体を投稿してください。そのようにして問題をより早く診断できますか? –

関連する問題