簡體   English   中英

Python 請求狀態 400 無異常

[英]Python requests no Exception on status 400

我正在設置一個小型 Python 腳本,以便我的同事可以使用以下代碼根據一些輸入從某個內部 API 收集數據:

url = "https://....."
params = dict(...)
client = BackendApplicationClient(client_id=client_id)
client.prepare_request_body(scope=[])
session = OAuth2Session(client=client)
response = session.get(url=url, params=params, verify=session.verify)

其中參數基於手動輸入。 我可以保證某些輸入不會完全符合 API 的要求(例如需要大寫的小寫字母等)。 在這種情況下,API 將返回狀態為 400 的響應:

>> response
<Response [400]>
>> response.text
{"statusCode":400,"errorMessage":"Bad Request","errors": ...}
>> response.status_code
400

我想我可以用response.raise_for_status()捕獲這個,但是沒有引發異常,返回值為None

>> response.raise_for_status()
None

為什么是這樣? 我認為 raise_for_status function 應該根據響應的 status_code 引發異常

如果 HTTP 狀態代碼為 400,則 requests 模塊的響應中的 raise_for_status()引發 HTTPError 異常。這是 OAuth2Session 的一個特性,您可以在此處閱讀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM