获取urllib2 HTTP请求中发送的头部信息
我知道怎么获取收到的头信息
resp = urllib2.urlopen('http://www.google.com')
print resp.info()
但是我怎么才能访问发送给 'http://www.google.com' 的头信息呢?
我通常使用wireshark来分析,看看实际发送了什么,但我想在我的脚本中获取这些信息。
2 个回答
0
好的,下面是内容的通俗易懂版本:
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当用户点击一个按钮时,我们希望程序能做出反应。这种情况就需要用到“事件处理”。
事件处理就是程序监听某些事件,比如鼠标点击、键盘输入等,然后根据这些事件来执行相应的代码。这样,程序就能和用户进行互动了。
在不同的编程语言中,事件处理的方式可能会有所不同,但基本的思路是一样的。我们通常会定义一个“事件监听器”,这个监听器就像一个守卫,时刻关注着用户的操作,一旦发现有事件发生,就会触发相应的代码。
总之,事件处理是让程序能够响应用户操作的重要机制,理解这一点对编程新手来说非常重要。
import httplib
import urllib2
class CustomHTTPConnection(httplib.HTTPConnection):
def request(self, method, url, body=None, headers={}):
self.req_headers = headers
self._send_request(method, url, body, headers)
def getresponse(self, buffering=False):
resp = httplib.HTTPConnection.getresponse(self, buffering)
for key, value in self.req_headers.items():
resp.msg.headers.append('req_%s: %s\r\n' % (key, value))
return resp
class CustomHTTPHandler(urllib2.AbstractHTTPHandler):
def http_open(self, req):
resp = self.do_open(CustomHTTPConnection, req)
return resp
http_request = urllib2.AbstractHTTPHandler.do_request_
if __name__ == '__main__':
opener = urllib2.OpenerDirector()
opener.add_handler(CustomHTTPHandler())
res = opener.open('http://www.google.it/')
info = res.info()
print info
2
在编程中,有时候我们需要把一些数据从一个地方转移到另一个地方。这就像把水从一个杯子倒到另一个杯子一样。这个过程可能会涉及到一些步骤,比如选择要转移的数据、确定目标位置等等。
有些时候,转移的数据可能会很复杂,或者需要经过一些处理才能到达目标位置。就像在倒水之前,可能需要先把水过滤一下,确保它是干净的。
此外,转移数据的时候,我们还需要考虑到速度和效率。就像在倒水时,如果我们用一个小勺子,可能会很慢;而用一个大杯子就会快很多。因此,选择合适的方法和工具是很重要的。
总之,数据转移是编程中一个常见的任务,理解这个过程可以帮助我们更好地处理和管理数据。
import httplib
import urllib2
class CustomHTTPConnection(httplib.HTTPConnection):
def request(self, method, url, body=None, headers={}):
print headers
self._send_request(method, url, body, headers)
class CustomHTTPHandler(urllib2.AbstractHTTPHandler):
def http_open(self, req):
return self.do_open(CustomHTTPConnection, req)
http_request = urllib2.AbstractHTTPHandler.do_request_
if __name__ == '__main__':
opener = urllib2.OpenerDirector()
opener.add_handler(CustomHTTPHandler())
res = opener.open('http://www.google.it/')