使用mitmproxy内联脚本

时间:2017-01-23 03:44:22

标签: python mitmproxy

我正在尝试使用mitmproxy记录每个http站点,但是我的内联脚本正在发出此错误 TypeError:request()缺少1个必需的位置参数:'flow'这是预览我的代码。我确实正确设置了我的代理,并且http:和内联脚本位于同一目录下的httplogs.txt文件,但我不明白这个函数有什么问题。

import sys

def request(context,flow):
    f = open('httplogs.txt', 'a+')
    f.write(flow.request.url + '\n')
    f.close()

2 个答案:

答案 0 :(得分:3)

假设您使用的是更新的(2017年1月)版本

<强> TL;博士

从方法签名中删除context

7个月前,mitmproxy从 响应 方法中删除 上下文

https://github.com/mitmproxy/mitmproxy/commit/c048ae1d5b652ad4778917e624ace217e1ecfd91 Da commit

因此更新的示例脚本在此处:

https://github.com/mitmproxy/mitmproxy/blob/1.0.x/examples/simple/add_header.py

def response(flow):
    flow.response.headers["newheader"] = "foo"

答案 1 :(得分:0)

谢谢,修好了!

这是我更新的记录请求片段&amp;响应标题:

def response(flow):
    print("")
    print("="*50)
    #print("FOR: " + flow.request.url)
    print(flow.request.method + " " + flow.request.path + " " + flow.request.http_version)

    print("-"*50 + "request headers:")
    for k, v in flow.request.headers.items():
        print("%-20s: %s" % (k.upper(), v))

    print("-"*50 + "response headers:")
    for k, v in flow.response.headers.items():
        print("%-20s: %s" % (k.upper(), v))
        print("-"*50 + "request headers:")