2014-01-16 53 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://)。

您需要在CURL命令上設置Proxy選項,例如,

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

參見http://fiddler2.com/documentation/Configure-Fiddler/Tasks/ConfigurePHPcURL

+0

感謝您指出網址問題。提琴手仍然沒有顯示外部域名流量。我也遵循了文檔中提到的步驟..只有在使用代理的情況下,提琴手是否希望向相同的域顯示流量? – Anand

+1

Fiddler不能「神奇地」看到從一臺遠程計算機發送到另一臺遠程計算機的流量。如果cURL在遠程計算機上運行,​​則需要在該遠程計算機上運行Fiddler,或者需要將cURL配置爲使用Fiddler運行的計算機作爲代理(以及「允許遠程計算機在Fiddler內部連接」)。 – EricLaw