Запросы - как узнать, получаете ли сообщение успешное сообщение?
Мой вопрос тесно связан с этим.
Я использую библиотеку запросов, чтобы попасть в конечную точку HTTP. Я хочу проверить, является ли ответ успешным.
В настоящее время я делаю это:
r = requests.get(url)
if 200 <= response.status_code <= 299:
# Do something here!
Вместо того, чтобы делать эту уродливую проверку значений от 200 до 299, есть ли сокращенная версия, которую я могу использовать?
Ответы
Ответ 1
Ответ имеет свойство ok
. Используйте это.
@property
def ok(self):
"""Returns True if :attr:'status_code' is less than 400.
This attribute checks if the status code of the response is between
400 and 600 to see if there was a client error or a server error. If
the status code, is between 200 and 400, this will return True. This
is **not** a check to see if the response code is ''200 OK''.
"""
try:
self.raise_for_status()
except HTTPError:
return False
return True
Ответ 2
Я новичок в Python, но я думаю, что самый простой способ это:
if response.ok:
# whatever
Ответ 3
Питонным способом проверки успешности запросов может быть необязательное создание исключения с помощью
try:
resp = requests.get(url)
resp.raise_for_status()
except requests.exceptions.HTTPError as err:
print(err)
EAFP: проще просить прощения, чем разрешения: вам следует просто делать то, что вы ожидаете, и если из операции может быть сгенерировано исключение, то поймайте его и разберитесь с этим фактом.