2014-01-16 5 views
0

Мне нужно захватить заголовки запросов и ответ при использовании PHP cURL для отправки данных на внешний вызов API. Локальная загрузка страницы отображается в трафике, где PHP cURL не отображается.Скрипач для захвата внешнего веб-сервера в PHP curl

$url = "https://https://gds.eligibleapi.com/v1.3/enrollment.json"; 

$ch = curl_init(); // initialize curl handle 
$user_agent = $_SERVER['HTTP_USER_AGENT'];  
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); 
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to 
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on errors 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // allow redirects 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); // add POST fields 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_string))); 


curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); 
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, 2); 


$data = curl_exec($ch); // if($data === false) echo 'Curl error: ' . curl_error($ch); 

echo  $data; 

$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch); 

ответ

3

Ваш URL имеет неверный формат (у вас есть https://https://).

Вам необходимо установить опцию Proxy в команде CURL, например.

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

См http://fiddler2.com/documentation/Configure-Fiddler/Tasks/ConfigurePHPcURL

+0

Спасибо, что указал на проблему с URL. Fiddler все еще не показывал внешний доменный трафик. Я также выполнил шаги, упомянутые в документе. Ожидается ли, что fiddler будет показывать трафик в тот же домен, только если используется прокси-сервер? – Anand

+1

Fiddler не может «волшебным образом» видеть трафик, отправленный с одного удаленного компьютера на другой удаленный компьютер. Если cURL запущен на удаленном компьютере, вам нужно либо запустить Fiddler на этом удаленном компьютере, либо вам нужно настроить cURL для использования компьютера, работающего с Fiddler, в качестве прокси (и «Разрешить удаленные компьютеры для подключения» внутри Fiddler). – EricLaw

Смежные вопросы