一、攔截http請求
使用Fiddler進行HTTP斷點調試是fiddler一強大和實用的工具之一。經過設置斷點,Fiddler能夠作到:
①修改HTTP請求頭信息。例如修改請求頭的UA,Cookie,Referer信息,經過「僞造」相應信息達到相應的目的(調試,模擬用戶真實請求等)。
②構造請求數據,突破錶單的限制,隨意提交數據。避免頁面js和表單限制影響相關調試。
③攔截響應數據,修改響應實體。
設置斷點共有兩種方式:
①fiddler菜單欄->rules->automatic Breakpoints->選擇斷點方式,這種方式下設定的斷點會對以後的全部HTTP請求有效。有兩個斷點位置:
1)before response。也就是發送請求以後,可是Fiddler代理中轉以前,這時能夠修改請求的數據。
2)after response。也就是服務器相應以後,可是在Fiddler將響應中轉給客戶端以前。這時能夠修改響應的結果。
3)如何消除命令呢?點擊Rules->Automatic Breakpoint->Disabled
②命令行設置斷點
1)bpu在請求開始時中斷
2)bpafter在響應到達時中斷
3)bps中斷HTTP響應狀態爲指定字符的所有session響應
4)bpv/bpm中斷指定請求方式的所有session響應
示例一:
命令行輸入:bpm www.baidu.cm(攔截www.baidu.com請求)
解除攔截:輸入命令:bpu
示例二:
命令行輸入:bpuafter www.baidu.cm(攔截www.baidu.cm返回值)
解除攔截:輸入命令:bpuafter
二、修改數據
攔截Http請求後修改方式有兩種,一種是臨時修改,即結果只對當次請求有效,另外一種是永久修改,能夠經過urlreplace命令實現。
①臨時修改請求
即在fiddler中執行Inspectors->WebForms,修改請求變量參數後執行Run to Completion,服務器返回新的請求結果
②永久性修改請求
1)命令行設置修改規則,修改請求:urlreplace 舊請求值 新請求值
fiddler命令行輸入:urlreplace pageid=103 pageid=105
其中pageid是請求參數,輸入命令後回車便可,新的請求設置成功,除非釋放請求,不然請求值不變,釋放請求命令urlreplace
2)腳本中修改規則,打開腳本方式:fiddler執行Rules->Customize Rules
示例一:攔截考拉客戶端請求,修改請求數據
前置條件:手機端設置好代理(最好不用測試wifi,測試wifi修改了DNS,篡改內容複雜)
步驟一:攔截直播發現頁請求,fiddler命令行執行:
步驟二:手機端啓動考拉,點擊直播tab,打不開直播列表頁
fiddler查看請求沒有任何返回值
步驟三:WebFroms修改參數值臨時修改請求,返回發現頁數據:
fiddler執行:Inspectors->WebForms,將pageid值從103修改成105,執行Run to Completion,接口返回主播列表頁數據
步驟四:命令行設置修改數據規則,永久改變數據
fiddler命令行執行:urlreplace pageid=103 pageid=105
步驟五:客戶端點擊直播tab,打開主播發現頁
步驟六:解除攔截,執行:urlreplace,再執行:bpu
步驟七:客戶點擊直播tab,正常打開直播發現頁
接口請求過程以下:
示例二:攔截狀態碼爲302的請求
步驟二:fiddler命令行執行:bps 302
步驟四:解除攔截,命令行執行:bps
接口請求過程以下: