Python请求无法处理403错误

2024-04-24 19:33:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个请求中得到一个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

还有什么我可以试试的吗


Tags: 代码devnonetruereturnresponseas错误
1条回答
网友
1楼 · 发布于 2024-04-24 19:33:15

要捕获403,您需要引发异常。这可以通过在post之后调用response.raise_for_status()来完成。见documentation

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

相关问题 更多 >