手头上遇到一个项目(使用python语言),需要对于发起的请求进行拦截并进行添加自定义请求头的操作,经过初步的调研发现mitmproxy能够满足我的需求,于是自己写了一个简单的demo进行尝试修改请求头和响应头,但是只有响应头修改成功了,请求头却没有修改成功
使用的mitmproxy版本:7.0.4
mitm_proxy.py
from mitmproxy import http
class ModifyHeader:
def request(self, flow: http.HTTPFlow):
flow.request.headers['test-request-header'] = 'test-request-header-value'
def response(self, flow: http.HTTPFlow):
flow.response.headers['test-response-header'] = 'test-response-header-value'
addons = [
ModifyHeader()
]
开启代理局部代码
options.add_argument('--ignore-certificate-errors')
options.add_argument('--proxy-server=0.0.0.0:8080')
request header中没有添加成功
参考对应example进行实现的
在request header中能够添加自定义的请求头
问题已解决,实际上已经修改成功了,只不过chrome中展示的请求头信息在mitmproxy修改之前,所以不显示添加的自定义请求头
具体问题细节看:https://github.com/mitmproxy/mitmproxy/discussions/5155