HTTP状态代码到状态消息

时间:2017-03-12 10:43:08

标签: python http http-status-codes

我正在寻找一种方法,用于从状态代码中获取HTTP消息。有没有比自己建立字典更好的方法?

类似的东西:

{{1}}

4 个答案:

答案 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状态详细信息,例如状态代码,描述等。这些是exampleHTTPStatus代码。

答案 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错误,它表示指向一个从未存在过的页面。