gpt4 book ai didi

python - 如何在 urllib2 请求中获取默认 header ?

转载 作者:太空狗 更新时间:2023-10-29 17:05:25 26 4
gpt4 key购买 nike

我有一个使用 urllib2 的 Python 网络客户端。将 HTTP header 添加到我的传出请求中非常容易。我只是创建了一个包含要添加的 header 的字典,并将其传递给请求初始化程序。

但是,其他“标准”HTTP header 以及我明确添加的自定义 header 都会添加到请求中。当我使用 Wireshark 嗅探请求时,除了我自己添加的标题之外,我还看到了标题。我的问题是如何访问这些 header ?我想记录每个请求(包括 完整 HTTP header 集),但不知道如何做。

有什么建议吗?

简而言之:如何从 urllib2 创建的 HTTP 请求中获取所有传出 header ?

最佳答案

如果你想看到发送出去的文字 HTTP 请求,并因此看到每个最后的 header 与它在网络上的表现完全一样,那么你可以告诉 urllib2 使用你自己的版本打印出(或保存,或其他)传出 HTTP 请求的 HTTPHandler

import httplib, urllib2

class MyHTTPConnection(httplib.HTTPConnection):
def send(self, s):
print s # or save them, or whatever!
httplib.HTTPConnection.send(self, s)

class MyHTTPHandler(urllib2.HTTPHandler):
def http_open(self, req):
return self.do_open(MyHTTPConnection, req)

opener = urllib2.build_opener(MyHTTPHandler)
response = opener.open('http://www.google.com/')

运行这段代码的结果是:

GET / HTTP/1.1
Accept-Encoding: identity
Host: www.google.com
Connection: close
User-Agent: Python-urllib/2.6

关于python - 如何在 urllib2 请求中获取默认 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/603856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com