[英]HttpClient.SendAsync() returns status code 200 even if the remote server is down
一個簡單的登錄方法,在我關閉我的 API 之前都可以正常工作。 然后 try-catch 塊按預期運行,拋出並捕獲異常,但是_response
出現狀態代碼“200,OK”。 為了我的愛,我不知道為什么。 請幫忙!
代碼看起來很糟糕,主要是因為我正在對它進行所有修補和測試以弄清楚發生了什么。
HttpResponseMessage response = null;
public async Task<HttpResponseMessage> login(AuthModel model)
{
HttpResponseMessage response = null;
model.responseMessage = "";
var client = new HttpClient();
string text = "{\"email\": \""+model.email+"\",\"password\": \""+model.password+"\"}";
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri(_baseURL+"/api/user/login"),
Content = new StringContent(text, Encoding.UTF8, "application/json")
};
try
{
using (response = await client.SendAsync(request))
{
HttpResponseMessage _response = null;
//response.EnsureSuccessStatusCode();
if (response.IsSuccessStatusCode)
{
//_response = response;
var body = await response.Content.ReadAsStringAsync();
var token = response.Headers.GetValues("auth-token").FirstOrDefault();
model.authToken = token;
model.name = body;
model.responseMessage = "Congratulations!";
return _response;
}
else
{
model.name = "";
model.responseMessage = await response.Content.ReadAsStringAsync();
return _response;
}
}
}
catch(Exception e) {
// model.responseMessage = e.Message;
return _response;
}
}
使用“HttpResponseMessage _response = new HttpResponseMessage();” 正在將 _response.StatusCode 設置為“200”並且代碼沒有處理它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.