今天給大家介紹一下mitmproxy 這個工具的其中一個用法,當你的前端需要請求數據,但是後端的代碼還沒有寫完,這時候,需要測試前端的頁面以及在需要第三方接口的返回數據,而在測試環境沒有返回數據,這時候我們需要mock第三方的返回的數據,就可以用到下面的方法了~
前提條件:
瀏覽器中安裝了mitmproxy
電腦中安裝了mitm.it 證書
1.pyhon中引入包mitmproxy
2.編寫python文件 addons.py
from mitmproxy import ctx
import json,os
class ModifyResponse:
def response(self,flow):
#攔截指定的url
if flow.request.url.startswith("https://XXX/cboss/collection-robot/list/words-template"):
#返回數據json,絕對路徑
with open('/Users/hairuwang/PycharmProjects/mitm-intercept/mitm/words-template.json','rb') as f:
res = json.load(f)
#設置返回數據
flow.response.set_text(json.dumps(res))
#log中打印
ctx.log.info('modify words-template response')
addons = [
ModifyResponse()
]
3.根據你要mock的接口的返回數據,修改爲你自己需要的數據 ,我們返回數據用json爲例:
返回json文件supplier.json:
{
"code":"SUCCESS",
"message":"SUCCESS",
"data":[
{
"name":"SHOPINTAR_Tomorrow",
"id":"10356"
},
{
"name":"SHOPINTAR_Tomorrow_new",
"id":"10370"
},
{
"name":"SHOPINTAR_Remind_new",
"id":"10467"
},
{
"name":"Kredit_Pintar_Remind",
"id":"10493"
}
]
}
4.運行:
mitmweb -s /Users/hairuwang/PycharmProjects/mitm-intercept/mitm/addons.py
這樣就可以攔截到請求的url,從而篡寫他的返回數據了~