Использование PHP cURL с прокси-сервером отладки HTTP - PullRequest
3 голосов
/ 31 октября 2009

Я использую приложение "Fiddler" для отладки GET-попытки на сайт через PHP cURL. Чтобы увидеть трафик 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

Если я вручную загружаю веб-сайт в браузере, Fiddler дает мне БОЛЬШЕ дополнительной информации. Я могу видеть куки, информацию заголовка и то, что я получаю через GET.

Есть идеи, почему Fiddler не видит больше полезной информации из PHP cURL?

Редактировать: Я попытался включить опцию «Включить расшифровку HTTPS» в меню «Инструменты» / «Параметры Fiddler» / «HTTPS» (которую я не уверен, почему мне нужно использовать, поскольку я не говорил cURL использовать HTTPS).

К сожалению, изменив этот параметр, я теперь получаю ответ:

HTTP/1.1 502 Connection failed

Редактировать: Если это поможет, приложение "Чарльз" покажет мне ПУТЬ больше информации, чем Fiddler, но я действительно хочу выяснить Fiddler, так как он мне нравится больше.

1 Ответ

3 голосов
/ 02 ноября 2009

«Слепое соединение установлено» предполагает, что вы не включили опцию «Включить расшифровку HTTPS» в меню «Инструменты / Параметры Fiddler / HTTPS».

...