[英]Which specific status codes cause a WebException to be thrown by HttpWebRequest.GetResponse()?
我已經在尋找一些關於此的明確文件,但沒有找到任何運氣。
對於哪些HTTP響應狀態代碼, HttpWebRequest.GetResponse()
在執行類似POST的WebException
后會生成WebException
?
具體來說,它WebException
為狀態200 OK
以外的任何其他內容生成WebException
? 或者它只會生成一個WebException
,例如WebException
和500(為了參數)?
我想知道,因為我正在與之通信的服務器定義除HTTP 200 OK
之外的任何其他內容作為錯誤條件返回。 我可以依賴為200以外的任何其他東西生成WebException
嗎?
我目前已編寫代碼來檢查每次返回狀態代碼並確保它是200 OK
。 如果不是,它將采取適當的行動 - 但是那個代碼和我希望清理的WebException
的catch塊之間有很多重復。
任何與文檔相關的鏈接都將非常受歡迎。
在響應和捕獲並檢查WebExceptions之后結束執行顯式檢查; 導致一些重復的代碼,但如果狀態為非200,是否總是會發生WebException沒有確定的答案。
我認為它會,但這聽起來像是一個冒險的假設。 首先, MSDN文檔清楚地表明GetResponse
將拋出除WebException
之外的異常。 但是,我可以從經驗中明確地說,“304 Not-Modified”響應將作為WebException
拋出。
所有這些談話都散發出一股狡猾的Code Smell; 不要使用異常來控制執行流程。 您最好適當地處理異常,然后顯式檢查StatusCode
屬性的允許值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.