在Python请求中获取状态代码的描述

Rob*_*rto 27 python http python-requests

我希望能够输入服务器响应代码并让请求告诉我代码的含义.例如,代码200 - >确定

我找到了源代码的链接,它显示了代码和描述的字典结构.我看到Requests将返回给定描述的响应代码:

print requests.codes.processing  # returns 102
print requests.codes.ok          # returns 200
print requests.codes.not_found   # returns 404
Run Code Online (Sandbox Code Playgroud)

但不是相反:

print requests.codes[200]        # returns None
print requests.codes.viewkeys()  # returns dict_keys([])
print requests.codes.keys()      # returns []
Run Code Online (Sandbox Code Playgroud)

我认为这将是一项例行任务,但似乎无法在在线搜索或文档中找到答案.

ale*_*cxe 29

或者,对于Python 2.x,您可以使用httplib.responses:

>>> import httplib
>>> httplib.responses[200]
'OK'
>>> httplib.responses[404]
'Not Found'
Run Code Online (Sandbox Code Playgroud)

在Python 3.x中,使用http模块:

In [1]: from http.client import responses

In [2]: responses[200]
Out[2]: 'OK'

In [3]: responses[404]
Out[3]: 'Not Found'
Run Code Online (Sandbox Code Playgroud)


小智 21

一种可能性:

>>> import requests
>>> requests.status_codes._codes[200]
('ok', 'okay', 'all_ok', 'all_okay', 'all_good', '\\o/', '\xe2\x9c\x93')
Run Code Online (Sandbox Code Playgroud)

元组中的第一个值用作传统的代码密钥.

  • `requests.status_codes._codes` 是您不应该触及的实现细节。请注意“_codes”上的“不要碰我”下划线。此类实施细节如有更改或删除,恕不另行通知。 (12认同)

nuw*_*ang 20

我之前也遇到过同样的问题,并在这个问题中找到了答案

基本上:

  • responsedata.status_code- 为您提供整数状态代码
  • responsedata.reason- 给出状态代码的文本/字符串表示形式

  • 我不明白你的意思。目前获得最多票数的答案是使用“httplib”。但是“requests”库已经(在其自身内部)提供了破译响应代码的含义(或字符串描述)的功能。您不必为此去其他地方。 (3认同)