Python Запросы не могут обработать ошибку 403 - PullRequest
1 голос
/ 18 июня 2020

Я получаю сообщение об ошибке 403 из-за того, что делаю запрос (это нормально, это не проблема). Однако я не могу поймать исключение и правильно обработать ошибку. Мой код просто продолжает двигаться, как будто ничего не случилось, и вызывает другие проблемы. Код

    try:
        verify = True if os.environ.get('environment', 'dev') != 'dev' else False
        response = requests.post(url, headers=headers, data=payload, verify=verify)
        return response.content
    except requests.HTTPError as e:
        print('Error', e)
        return None
    except requests.exceptions.RequestException as e:
        print("Connection refused", e)
        return None
    except Exception as e:
        print("Internal error", e)
        return None

Есть еще что-нибудь, что я могу попробовать?

1 Ответ

1 голос
/ 18 июня 2020

Чтобы захватить 403, вам нужно вызвать исключение. Это можно сделать, позвонив по номеру response.raise_for_status() после публикации. см. документацию .

try:
    verify = True if os.environ.get('environment', 'dev') != 'dev' else False
    response = requests.post(url, headers=headers, data=payload, verify=verify)
    response.raise_for_status() # This will throw an exception if status is 4xx or 5xx
    return response.content
except requests.HTTPError as e:
    print('Error', e)
    return None
except requests.exceptions.RequestException as e:
    print("Connection refused", e)
    return None
except Exception as e:
    print("Internal error", e)
    return None
...