使用fiddler抓安卓APP数据包并调试PHP程序
我有个这样的需求
要在安卓APP向服务器发起请求的时候调试PHP程序。
把目标分解开来,大概步骤如下
调试PHP使用ECLIPSE+XDEBUG,而XDEBUG触发断点需要get方法传递一个参数或者设置一个COOKIE,我使用的是COOKIE的方法(我认为这种方法比较好)
也就是说,要想办法让APP发起请求的时候带着COOKIE信息,因为APP开发我不熟悉,所以只能想别的办法,我的办法就是HOOK到请求,然后添加上COOKIE值
刚刚好,fiddler除了可以抓取HTTP数据包的能力之外,他也可以修改请求和响应,我需要修改的就是请求。
使用fiddler修改请求的方法有两种,一种是下断点,然后修改请求头,第二种就是写脚本。我用的是第二种方法
在fiddler 的脚本文件中的 OnBeforeRequest方法里添加
if (oSession.HostnameIs("192.168.1.7")) {
oSession.oRequest.headers.Add("Cookie", "XDEBUG_SESSION=ECLIPSE_DBGP");
}
这段代码的意思是
如果请求的目标地址是192.168.1.7主机的画,就添加一个COOKIE ,键为XDEBUG_SESSION,值为ECLIPSE_DBGP ,这个是我使用eclipse触发PHP断电的时候需要的COOKIE信息,到此为止,我的需求就实现了
PS:如果用火狐调试配合ECLIPSE调试php的话可以使用一个 叫做 the easiest xdebug的插件。
参考资料:http://www.cnblogs.com/tankxiao/archive/2012/04/25/2349049.html#ScriptEditCookie
http://xdebug.org/docs/remote
http://docs.telerik.com/fiddler/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse