在Python中,getresponse()返回什么?
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
: 服务器返回的原因短语。