我正在寻找一种方法,用于从状态代码中获取HTTP消息。有没有比自己建立字典更好的方法?
类似的东西:
{{1}}
答案 0 :(得分:8)
在Python 2.7中,httplib模块具备您所需的功能:
>>> import httplib
>>> httplib.responses[400]
'Bad Request
常量也可用:
httplib.responses[httplib.NOT_FOUND]
httplib.responses[httplib.OK]
更新
@shao.lo在下面添加了有用的评论。可以使用http.client模块:
# For Python 3 use
import http.client
http.client.responses[http.client.NOT_FOUND]
答案 1 :(得分:1)
此问题在Python 3.5及更高版本中得以解决。现在,Python http库具有名为HTTPStatus的内置模块。您可以轻松获取http状态详细信息,例如状态代码,描述等。这些是example的HTTPStatus代码。
答案 2 :(得分:1)
Python 3:
您可以使用HTTPStatus()。phrase获取给定代码值的描述。例如。像这样:
try:
response = opener.open(url,
except HTTPError as e:
print(f'In func my_open got HTTP {e.code} {HTTPStatus(e.code).phrase}')
例如:
In func my_open got HTTP 415 Unsupported Media Type
哪个回答了这个问题。但是,可以从HTTPError.reason获得更直接的解决方案:
try:
response = opener.open(url, data)
except HTTPError as e:
print(f'In func my_open got HTTP {e.code} {e.reason}')
答案 3 :(得分:0)
404错误表示该页面可能已被移动或已脱机。它不同于400错误,它表示指向一个从未存在过的页面。