2012-12-20 29 views
1

有沒有辦法讓NSURLConnection生成實際的HTTP請求消息?我用「tcpdump」(Unix util)弄清楚了,但是想知道是否有一種方法可以通過編程獲得它?獲取NSURLConnection生成的實際HTTP請求消息?

例如,URL字符串http://www.example.com/somepath/resource?v=99顯然會產生這一點,如果我用它在NSURLConnection的:

GET /somepath/resource?v?99 HTTP/1.1 
Host: www.example.com 
User-Agent: {myprog}/1 CFNetwork/596.2.3 Darwin/12.2.0 (x86_64) (iMac11%2C1) 
Accept: */* 
Date: Wed, 19 Dec 2012 03:12:12 GMT+01:00 
Accept-Language: sv-se 
Accept-Encoding: gzip, deflate 
Cookie: {long-string} 
Connection: keep-alive 

一些HTTP報頭可以被設置爲在的NSURLRequest使用setValue:forHTTPHeaderField:(其它值如「主機」和「用戶代理」),但有些不能(如「連接」)。

回答

0

[請求allHTTPHeaderFields]發送帶有按鍵和僅喲已設置值的字典....

如果你想看到整個請求,您可以使用以下工具...

http://blog.jerodsanto.net/2009/06/sniff-your-iphones-network-traffic/

我顯示了請求和響應......

+0

謝謝,但因爲這不是一個iPhone應用程序,鏈接沒有幫助。我可以使用「tcpdump」(Unix util)來嗅探網絡流量,但是想知道是否有某種方式來以編程方式獲取發送的實際請求消息。我認爲NSURLConnection有點模糊,但我不是高級的可可程序員,所以也許這只是一些習慣。 –