python httplib:获取传出请求标头

时间:2010-06-24 09:00:48

标签: python httplib httpconnection

我做:

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

出于调试原因,我希望看到我使用的请求(它的字段,路径,方法,......)。我希望有某种con.getRequest()或类似的东西,但没有找到任何东西。想法?

1 个答案:

答案 0 :(得分:3)

尝试

con.setdebuglevel(1)

这将启用调试输出,除其他外,它将打印出它发送的所有数据。

如果您只想获取标题和请求行,而不是请求正文(或任何其他调试输出),您可以继承HTTPConnection并覆盖_output方法,该方法由class本身产生输出(请求体除外)。你想做这样的事情:

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

有关其工作原理和可能的替代方案的详细信息,请查看httplib源代码。