获取headers时,内容不完整问题。

获取headers时,内容不完整问题。

使用urllib2
response = urllib2.urlopen('http://www.163.com')

print response.info()

输出内容如下:


Date: Mon, 29 Sep 2008 05:07:42 GMT
Server: Apache
Vary: Host,Accept-Encoding
Set-Cookie: _kb_track=222.173.95.53.1222664862177182; path=/; expires=Sat, 28-Mar-09 05:07:42 GMT; domain=.koubei.com
Set-Cookie: JSESSIONID=1A23BDE6352F1274F724F16AFD2D2F96; Domain=koubei.com; Path=/
Set-Cookie: last_visit_fang_new=1_1805_r5d765f154cb44692b152499cbf439cb7; Domain=koubei.com; Expires=Tue, 29-Sep-2009 05:07:42 GMT; Path=/
Content-Language: zh-CN, zh-CN
Connection: close
Content-Type: text/html;charset=GBK

但正常情况下headers头部首行还包含这个代码:HTTP/1.0 200 OK
不知道是我函数用错了,还是就这样呢????

谢谢@
response.code,如果是404,500之类的,会抛出urllib2.HTTPError异常,也是e.code,e.info(),e.read()之类的
没有错误,只是返回来的headers信息不完整。


QUOTE:
原帖由 lemonniu 于 2008-9-29 17:14 发表
没有错误,只是返回来的headers信息不完整。

urllib系列状态头是response.code,具体字符是response.msg,抛出异常的也一样,这个不是key<->value的hash dict,不放进headers里的
httplib系列状态头是response.status,具体字符是response.reason,这个无论是200 OK,还是404 NOT FOUND都没异常的
兄台,我想你是理解错我的意思了。
我意思是用response.info()获得的headers头部信息不完整,安里说应该还带着HTTP 200 OK 这一行,可是那个函数没有,。


QUOTE:
原帖由 lemonniu 于 2008-10-6 13:12 发表
兄台,我想你是理解错我的意思了。
我意思是用response.info()获得的headers头部信息不完整,安里说应该还带着HTTP 200 OK 这一行,可是那个函数没有,。

兄台,我都说了,response.info里获取的是key->value的hash,HTTP/1.0 200 OK这行是表示的是http状态,urllib2/httplib没把它放进info里

你要获取自己拼下(response.code,response.msg)(urllib)或(response.status,response.reason)(httplib)就成了,何必纠缠在info里