我正在使用mitmproxy来拦截流量。我想要的是能够以字符串形式获取整个请求和响应。我知道您有def response(context, flow)
并且HTTPFlow对象具有请求和响应对象。我想要的只是字符串中的类似内容
GET http://www.google-analytics.com/collect?v=1& HTTP/1.1
Header 1: value
Header 2: value
request body
还有这个
HTTP/1.1 301 Moved Permanently
Header 1: value
Header 2: value
response body
现在,我尝试通过请求和响应的不同部分和位来尝试此操作,但这很容易出错。有一个更好的方法吗?
另外,mitm是否可以处理Gzip编码的响应主体?
最佳答案
如果有人碰到这个;上面的答案不适用于mitmproxy4。相反,可以使用以下方法:
from mitmproxy.net.http.http1.assemble import assemble_request
def response(flow):
print(assemble_request(flow.request).decode('utf-8'))