2017-10-13 78 views
1

如何使用Python requests庫來訪問錯誤流?例如,在Java中使用HttpURLConnection,我會做這樣的事情:如何使用Python請求庫獲取HTTP錯誤流?

InputStream errorStream = conn.getErrorStream(); 

有這樣與requests的功能?
我正在尋找由源提供的響應中的錯誤消息,而不是錯誤狀態,例如內部服務器錯誤

+0

您是指響應的正文內容? –

+0

那麼,在調用'getInputStream'(獲取響應內容)的Java中,如果響應代碼是錯誤響應,則會引發異常。在這種情況下,你必須調用'getErrorStream'。你是說'請求'對待他們都一樣嗎?所以調用'response.text'會給我什麼可用的? – RTF

+0

好吧,試試吧。 –

回答

1

requests如果發生HTTP錯誤,則不會引發異常,但您可以在響應內容中獲取錯誤消息。示例:

url = 'https://stackoverflow.com/does_not_exist' 
r = requests.get(url) 
print(r.status_code, r.reason) 
print(r.text) 
+0

我一般誤解了HTTP響應。我認爲錯誤響應是在原始響應的一個單獨部分中設置的,但大概是我發佈的Java示例強制您調用'getErrorStream'來確保您知道您正在檢索錯誤響應,以防止意外調用getInputStream思維你的迴應很好。 – RTF

+1

如果你想使用['raise_for_status()'](http://docs.python-requests.org/en/master/user/quickstart/#response-status-codes)來引發'HTTPError'異常, –

相關問題