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

问题描述 投票:0回答:5

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

我找到了源代码的链接,其中显示了代码和描述的字典结构。我看到请求将返回给定描述的响应代码:

print requests.codes.processing  # returns 102
print requests.codes.ok          # returns 200
print requests.codes.not_found   # returns 404

但反之则不然:

print requests.codes[200]        # returns None
print requests.codes.viewkeys()  # returns dict_keys([])
print requests.codes.keys()      # returns []

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

python http python-requests
5个回答
65
投票

或者,如果是 Python 2.x,您可以使用

httplib.responses
:

>>> import httplib
>>> httplib.responses[200]
'OK'
>>> httplib.responses[404]
'Not Found'

在 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'

31
投票

一种可能性:

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

元组中的第一个值用作常规代码键。


21
投票

我之前也遇到过同样的问题,后来发现 回答这个问题

基本上:

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

3
投票

使用 Python 3.5 或更高版本,您可以使用

HTTPStatus
:

>>> from http import HTTPStatus
>>> HTTPStatus(200).phrase
'OK'

-1
投票

requests.status_codes.codes.OK

工作得很好,并使其在我的应用程序代码中更具可读性

请注意,在源代码中:requests.status_codes.codes 的类型为 LookupDict,它覆盖了方法 getitem

您可以使用 -

dir(requests.status_codes.codes)

查看所有支持的按键

与FLASK结合使用时:

我喜欢使用 Flask-api 插件中的以下枚举

from flask_api import status
我可以在其中获得更具描述性的 HTTP 状态代码版本,如 -

状态.HTTP_200_OK

© www.soinside.com 2019 - 2024. All rights reserved.