2011-12-09 67 views
3

我正在試圖找到一種方法來獲取有關所有來往於IOS應用程序的TCP數據流的信息。該應用程序非常簡單,由一個UIWebView對象組成。在iOS上使用低級別的TCP方法

我試圖在NSURLRequest上使用swizzling,但沒有太多運氣 - 我手動調用NSURLRequest時調用了我的requestWithURL的版本,但它在瀏覽頁面時似乎並沒有被調用在UIWebView中,所以我猜它使用了不同的對象。

所以我想到試圖掛鉤到CFSocket函數,但這些不是類的一部分,所以我不知道如何調整它們(或者甚至可能)。

是否有任何方法可以掛接到IOS上的C函數,或者我可以嘗試使用任何其他API訪問TCP(甚至HTTP)流量?

我也嘗試過使用NSURLCache,它適用於大多數主要的.html頁面,但很多人已經發現了.cs文件,而其他一些人似乎沒有通過緩存。

謝謝!

+0

我不確定,但你可能會註冊一個協議處理程序的http:協議,將調用每個http請求。在幾年前,我在Java中做了類似的事情,並且我在ObjC中學習了這種技術,但從未真正嘗試過。因人而異。 – Cliff

+1

感謝您的建議。我看了看,看來你不能覆蓋現有的協議,如HTTP,但如果有人知道其他明智,請讓我知道(: – Locksleyu

回答

1

只需設置像Fiddler或Charles這樣的外部代理即可監控http流量。或者更復雜的是,Wireshark適用於任何tcp流量。這將比你想要的更強大,更容易。

+0

iPhone - >計算機廣播 - WiFi - >互聯網 – JoePasq

+0

感謝您的想法。一個長期的故事,但外部解決方案不會爲我所需要的不幸做任何其他的想法? – Locksleyu

+0

除非你正在調試已經部署的東西我看不出任何理由代理不適合這個賬單 – TomSwift

相關問題