2009-10-31 19 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