我想为服务器不响应的情况编写代码。我故意关闭后台来模拟这种情况。HttpClient
向WebAssembly.JSException
抛出消息
TypeError: Failed to fetch
可以吗?
我觉得这很令人困惑。我担心如果我依赖这种行为,就会出现问题。我怎样才能妥善处理这个案子?
下面的代码片段描述了如何对Web Api端点执行HTTP GET调用,查询指示HTTP响应是否成功的IsSuccessStatusCode的值。如果成功,代码将检索数据流,将其反序列化为List<Contact>
,并将其返回给调用代码。
如果不成功(else子句(,则处理失败。。。在这里,你可以放置任何你想做的检查,记录错误,显示消息,等等。
我想在这里展示的是如何不仅解决您的问题,还解决其他异常,如NotFound(404(异常等。
您也可以使用响应。EnsureSuccessStatusCode((;在try/catch块中,并根据您的需要处理异常。
你可以用各种方式来做这一切。。。
public async Task<List<Contact>> GetContactsAsync()
{
var response = await httpClient.GetAsync("api/contacts");
// response.EnsureSuccessStatusCode();
if (response.IsSuccessStatusCode)
{
// Handle success
var responseContent = await response.Content.ReadAsStreamAsync();
return await JsonSerializer.DeserializeAsync<List<Contact>>(responseContent);
}
else
{
// Handle failure
}
}