[英]Why does HttpClient.PostAsync not throw on failure?
在ASP.Net Core Web服務中,如果HttpClient.GetStringAsync調用因404錯誤或其他原因而失敗,則會拋出HttpRequestException。 這很棒。
另一方面,如果對於404,HttpClient.PostAsync調用失敗,則不會拋出異常。 我必須檢查狀態代碼,制作異常並手動拋出它。
為什么要分心,是否有更優雅的方式來應對這種情況?
HttpResponseMessage response = await _http.PostAsync("api/pollapi/request", new StringContent(requestInput));
if (!response.IsSuccessStatusCode)
{
throw new HttpRequestException($"Response status does not indicate success: {(int)response.StatusCode} ({response.StatusCode}).");
}
您可以使用HttpResponseMessage.EnsureSuccessStatusCode
方法:
如果HTTP響應的IsSuccessStatusCode屬性為false,則引發異常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.