以前做Web开发,以为Fiddler可以监听到所有的HTTP连接。现在做原生开发,听说Fiddler不能收到应用的Http连接,觉得很奇怪。查了一下,的确如此。而用WireShark可以抓到。
Google了一下,因为应用用了libcurl的接口来创建HTTP连接,如果要使用Fiddler,需要在代码中插入类似如下的代码:
curl_easy_setopt(m_curl, CURLOPT_PROXY, "127.0.0.1:8888");
其中8888
是Fiddler默认设置的一个监听端口,如果在Option中修改了,则需要替换为响应的端口号。
仔细想想,Fiddler的软件名叫Fiddler Web Debugger,是一个支持中断,并且可以修改传输内容的软件,之所以浏览器的数据能够进入,应该是把fiddler当成一个代理了。而WireShark则纯粹是在底层监听计算机的所有出入数据(需要安装WinPCap),什么数据都能检测到,但不能修改数据。(没细查,求指正)
2016/11/3 首稿