2009-10-31 29 views
3

我正在使用應用程序「Fiddler」通過PHP cURL調試GET嘗試到網站。爲了查看cURL流量,我必須指定cURL連接使用Fiddler代理(請參閱下面的代碼)。在HTTP調試代理中使用PHP cURL

$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); 

但問題是,在小提琴手,我只能看到這一點:

請求(domain.com只是一個別名):

CONNECT domain.com:80 HTTP/1.1 

響應:

HTTP/1.1 200 Blind-Connection Established 

如果我在瀏覽器中手動加載網站提琴手給我WAY mo重新信息。我可以看到Cookie,標題信息以及通過GET獲得的信息。

任何想法爲什麼Fiddler無法從PHP cURL中看到更多有用的信息?

編輯:我試着在裏面工具「啓用HTTPS解密」選項打開/菲德勒選項/ HTTPS(我不知道爲什麼我會需要使用,因爲我沒有告訴捲曲使用HTTPS)。

不幸的是,通過更改此設置我現在得到的響應:

HTTP/1.1 502 Connection failed 

編輯:如果有幫助,應用程序「查爾斯」顯示我比小提琴手WAY更多的信息,但我真的想找出Fiddler,因爲我更喜歡它。

+0

對不起,我完全錯過了你沒有在這裏使用SSL的事實。除非您實際使用SSL流量,否則沒有理由使用CONNECT隧道。 – EricLaw 2009-11-05 02:52:06

回答

3

「建立盲連接」表明您尚未打開Tools/Fiddler Options/HTTPS中的「啓用HTTPS解密」選項。

+0

謝謝埃裏克!不幸的是,打開該設置後,響應爲「HTTP/1.1 502連接失敗」。 – Kane 2009-11-02 20:16:33

+2

CURLOPT_HTTPPROXYTUNNEL不會做你認爲它做的事。如果你沒有設置它,只需設置CURLOPT_PROXY,它應該可以正常工作。 – EricLaw 2009-11-05 02:49:49