我有個這樣的需求
要在安卓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:如果用Firefox調試配合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