Python HTTP状态代码到状态消息
我正在寻找一种用Python从状态代码中获取HTTP消息的方法。有没有一种方法比自己编写字典更好 比如:Python HTTP状态代码到状态消息,python,http,http-status-codes,Python,Http,Http Status Codes,我正在寻找一种用Python从状态代码中获取HTTP消息的方法。有没有一种方法比自己编写字典更好 比如: >>> print http.codemap[404] 'Not found' 在Python 2.7中,模块具有您需要的功能: >>> import httplib >>> httplib.responses[400] 'Bad Request 常数也可用: httplib.responses[httplib.NOT_FOUND]
>>> print http.codemap[404]
'Not found'
在Python 2.7中,模块具有您需要的功能:
>>> import httplib
>>> httplib.responses[400]
'Bad Request
常数也可用:
httplib.responses[httplib.NOT_FOUND]
httplib.responses[httplib.OK]
更新
在下面添加了一条有用的评论。该模块可用于:
# For Python 3 use
import http.client
http.client.responses[http.client.NOT_FOUND]
404错误表示页面可能已被移动或脱机。它不同于400错误,400错误表示指向从未存在过的页面。此问题在Python 3.5以后的版本中解决。现在,Python http库有一个内置模块,名为。您可以轻松获取http状态详细信息,如状态代码、描述等。这些是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获得更直接的解决方案。原因:
try:
response = opener.open(url, data)
except HTTPError as e:
print(f'In func my_open got HTTP {e.code} {e.reason}')
我更改了python3的message-use
import http.client
和http.client.responses[http.client.NOT\u FOUND]
@JSTL,但这个答案给出了用法示例。