Dot-Net

EnsureSuccessStatusCode 的使用和它拋出的 HttpRequestException 的處理

  • January 13, 2014

的使用模式是HttpResponseMessage.EnsureSuccessStatusCode()什麼?它處理消息的內容並拋出HttpRequestException,但我看不到如何以程式方式處理它與泛型不同Exception。例如,它不包括HttpStatusCode本來很方便的 。

有沒有辦法從中獲取更多資訊?任何人都可以顯示兩者EnsureSuccessStatusCode()和 HttpRequestException 的相關使用模式嗎?

的慣用用法EnsureSuccessStatusCode是當您不想以任何特定方式處理失敗案例時,簡明扼要地驗證請求是否成功。當您想要快速製作客戶端原型時,這尤其有用。

當您決定要以特定方式處理失敗案例時,請勿執行以下操作。

var response = await client.GetAsync(...);
try
{
   response.EnsureSuccessStatusCode();
   // Handle success
}
catch (HttpRequestException)
{
   // Handle failure
}

這拋出一個異常只是為了立即擷取它,這沒有任何意義。的IsSuccessStatusCode財產HttpResponseMessage就是為了這個目的。請改為執行以下操作。

var response = await client.GetAsync(...);
if (response.IsSuccessStatusCode)
{
   // Handle success
}
else
{
   // Handle failure
}

引用自:https://stackoverflow.com/questions/21097730