3

アプリ「Fiddler」を使用して、PHP cURL を介して Web サイトへの GET 試行をデバッグしています。cURL トラフィックを確認するには、cURL 接続で Fiddler プロキシを使用するように指定する必要がありました (以下のコードを参照)。

$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8888'); 

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'read_header');  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_REFERER, "http://domain.com");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_URL, "http://domain.com");

$response = curl_exec($ch);

しかし、問題は、Fiddler ではこれしか表示されないことです。

リクエスト (domain.com は単なるエイリアスです):

  CONNECT domain.com:80 HTTP/1.1

応答:

  HTTP/1.1 200 Blind-Connection Established

ブラウザーで Web サイトを手動で読み込むと、Fiddler はさらに多くの情報を提供してくれます。Cookie、ヘッダー情報、および GET 経由で受信した内容を確認できます。

Fiddler が PHP cURL からより有用な情報を参照できない理由はありますか?

編集: Tools / Fiddler Options / HTTPS内の「Enable HTTPS Decryption」オプションをオンにしてみました(cURLにHTTPSを使用するように指示しなかったため、なぜ使用する必要があるのか​​ わかりません)。

残念ながら、この設定を変更すると、次の応答が得られます。

HTTP/1.1 502 Connection failed

編集:アプリ「Charles」は、Fiddler よりもはるかに多くの情報を表示してくれますが、私は Fiddler の方が好きなので、本当に理解したいと思っています。

4

1 に答える 1

3

「ブラインド接続が確立されました」は、ツール/フィドラー オプション/HTTPS 内の「HTTPS 復号化を有効にする」オプションをオンにしていないことを示しています。

于 2009-11-02T02:56:10.763 に答える