Answers:
就个人而言,我将Charles用于此类工作。
启用后,它将监视每个网络请求,显示扩展的请求详细信息,包括对SSL和各种请求/响应格式(如JSON等)的支持。
您还可以将其配置为仅嗅探对特定服务器的请求,而不嗅探整个流量。
它是商业软件,但是有一个试用版,恕我直言,它绝对是一个很棒的工具。
如果您只想查看HTTP / HTTPS流量,则像其他答案所建议的那样,中间人代理是一个很好的解决方案。打p套房非常好。但是配置可能会很痛苦。我不确定您如何说服模拟器与之对话。您可能必须将本地Mac上的代理设置为代理服务器的实例才能被代理拦截,因为模拟器将利用本地Mac的环境。
我发现的最好的数据包嗅探解决方案(尽管它仅适用于实际的 iOS设备,不适用于模拟器)rvictl
。这篇博客文章写得很好。基本上,您会这样做:
rvictl -s <iphone-uid-from-xcode-organizer>
然后,您可以嗅探它与Wireshark(或您喜欢的工具)一起创建的接口,并在完成后使用以下命令关闭接口:
rvictl -x <iphone-uid-from-xcode-organizer>
很好,因为如果您想对模拟器进行数据包嗅探,则还必须遍历到本地Mac的流量,但是要rvictl
创建一个虚拟界面,该界面仅向您显示已插入USB的iOS设备的流量港口。
mitmproxy是可在Mac上轻松运行的免费开放源代码代理工具。
该网站包含指向Mac二进制文件的链接,以及Github上的源代码。
该文档包含一个非常有用的介绍,可以将证书加载到您的测试设备中以查看HTTPS流量。
虽然不像Charles那样具有GUI风格,但是它可以满足我的所有需求,并且它是免费的和维护的。好东西,如果您以前使用过一些命令行工具,则非常简单。
更新:我只是在网站上注意到mitmproxy可作为自制软件安装。再简单不过了。
如果您具有与Mac的电缆连接,那么有一种简单而强大的方法:
安装免费的Wireshark,确保它可以捕获设备(并且您需要在每台计算机重新启动后执行此操作)!):
须藤chmod 644 / dev / bpf *
现在与wifi共享您的网络。系统偏好设置>共享> Internet共享。检查您是否具有“共享来自:以太网的连接”并使用:Wi-Fi。您可能还需要配置一些wifi安全性,这不会干扰您的数据监视。
将手机连接到新创建的网络。我经常在这里需要几次尝试。如果手机不想连接,请打开Mac的wifi,然后重复上述步骤2并耐心等待。
启动Wireshark使用Wireshark捕获您的无线接口,可能是“ en1”。过滤所需的IP地址和/或端口。当找到有趣的程序包时,选择它,右键单击(上下文菜单)> Follow TCP Stream,您会看到请求和答案的漂亮文本表示。
最好的是:完全相同的技巧也适用于Android!
Telerik Fiddler是一个不错的选择
http://www.telerik.com/blogs/using-fiddler-with-apple-ios-devices
如果您习惯使用chrome inspector工具,那么一个好的解决方案是Pony调试器:https : //github.com/square/PonyDebugger
设置有点麻烦,但是一旦完成,它就会很好地工作。请确保使用Safari而不是Chrome来使用它。
我用netfox。它非常易于使用和集成。您可以在模拟器和设备上使用它。它显示了所有的请求和响应。它支持JSON,XML,HTML,图像和其他类型的响应。您可以通过IOS默认共享格式(Gmail,WhatsApp,电子邮件,松弛,短信等)共享请求,响应和完整日志。
您可以在GitHub上检查:https : //github.com/kasketis/netfox
Netfox可以快速查看由iOS或OSX应用执行的所有已执行的网络请求。它捕获所有请求-当然是您的请求,来自第三方库(例如AFNetworking,Alamofire或其他),UIWebViews等的请求