在Python中,getresponse()返回什么?

12 投票
1 回答
13011 浏览
提问于 2025-04-15 16:07
 import httplib
    conn = httplib.HTTPConnection(head)
    conn.request("HEAD",tail)
    res = conn.getresponse()

我可以获取res.status,这就是HTTP状态码。

还有哪些其他的内容我可以获取呢?为什么当我打印res的时候,它不会显示字典的内容?我只是想看看那个字典里有哪些键...

1 个回答

26

你可以随时使用 dir 来查看一个对象的内容,这样你就能知道它有哪些属性。

>>> import httplib
>>> conn = httplib.HTTPConnection("www.google.nl")
>>> conn.request("HEAD", "/index.html")
>>> res = conn.getresponse()
>>> dir(res)
['__doc__', '__init__', '__module__', '_check_close', '_method', '_read_chunked', '_read_status', '_safe_read', 'begin', 'chunk_left', 'chunked', 'close', 'debuglevel', 'fp', 'getheader', 'getheaders', 'isclosed', 'length', 'msg', 'read', 'reason', 'status', 'strict', 'version', 'will_close']

同样,你也可以使用 help,这会显示对象的文档信息,如果它有 __doc__ 属性的话。就像 res 这个对象一样,你可以试试:

>>> help(res)

除此之外,文档中提到 getresponse 会返回一个 HTTPResponse 对象。因此,正如你在那儿(以及在 help(res))可以看到的,HTTPResponse 对象有以下这些属性和方法:

  • HTTPResponse.read([amt]): 读取并返回响应的主体,或者最多返回下一个 amt 字节。

  • HTTPResponse.getheader(name[, default]): 获取指定名称的头部内容,如果没有找到则返回默认值。

  • HTTPResponse.getheaders(): 返回一个包含(头部,值)元组的列表。 (在2.4版本中新增)

  • HTTPResponse.msg: 一个 mimetools.Message 实例,包含响应头部信息。

  • HTTPResponse.version: 服务器使用的HTTP协议版本。HTTP/1.0为10,HTTP/1.1为11。

  • HTTPResponse.status: 服务器返回的状态码。

  • HTTPResponse.reason: 服务器返回的原因短语。

撰写回答