python httplib:获取出站请求头部

3 投票
1 回答
1598 浏览
提问于 2025-04-16 00:22

我做了:

con = HTTPConnection(SERVER_NAME)
con.request('GET', PATH, HEADERS)
resp = con.getresponse()

为了调试,我想查看我使用的请求(包括它的字段、路径、方法等等)。我本以为会有类似 con.getRequest() 这样的东西,但我没有找到。有什么想法吗?

1 个回答

3

试试这个

con.setdebuglevel(1)

这会开启调试输出,除了其他功能外,它会打印出所有发送的数据。

如果你只想获取请求的头信息和请求行,而不想要请求体(或者其他调试输出),你可以创建一个新的类,继承自 HTTPConnection,并重写 _output 方法。这个方法是类自己用来生成输出的(除了请求体)。你可以这样做:

class MyHTTPConnection(HTTPConnection):
    def _output(self, s):
        print repr(s)
        super(MyHTTPConnection, self)._output(s)

想了解更多关于这个方法的细节和其他可能的替代方案,可以查看 httplib 的源代码。

撰写回答