C# WebAssembly.JSException:TypeError:在服务器未响应时获取失败
我想为服务器不响应的情况编写代码。 我故意关闭后端以模拟这种情况C# WebAssembly.JSException:TypeError:在服务器未响应时获取失败,c#,blazor,blazor-client-side,C#,Blazor,Blazor Client Side,我想为服务器不响应的情况编写代码。 我故意关闭后端以模拟这种情况HttpClient抛出带有消息的WebAssembly.JSException TypeError: Failed to fetch 可以吗 我认为这令人困惑。 我担心如果我依赖这种行为,就会有问题。 如何正确处理这种情况?下面的代码片段描述了如何执行对Web Api端点的HTTP GET调用,查询IsSuccessStatusCode的值,该值指示HTTP响应是否成功。如果成功,代码将检索数据流,将其反序列化为列表,并将其返
HttpClient
抛出带有消息的WebAssembly.JSException
TypeError: Failed to fetch
可以吗
我认为这令人困惑。
我担心如果我依赖这种行为,就会有问题。
如何正确处理这种情况?下面的代码片段描述了如何执行对Web Api端点的HTTP GET调用,查询IsSuccessStatusCode的值,该值指示HTTP响应是否成功。如果成功,代码将检索数据流,将其反序列化为
列表
,并将其返回给调用代码
如果不成功(else子句),则处理失败…在这里,您可以进行任何要进行的检查、记录错误、显示消息等
我在这里试图展示的是如何解决您的问题,以及其他异常,如NotFound(404)异常等的方向
您也可以使用response.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
}
}
公共异步任务GetContactsAsync()
{
var response=wait httpClient.GetAsync(“api/contacts”);
//response.EnsureSuccessStatusCode();
if(响应。IsSuccessStatusCode)
{
//成功
var responseContent=await response.Content.ReadAsStreamAsync();
返回等待JsonSerializer.DeserializeAsync(responseContent);
}
其他的
{
//处理失败
}
}
以下代码片段描述了如何对Web Api端点执行HTTP GET调用,查询IsSuccessStatusCode的值,该值指示HTTP响应是否成功。如果成功,代码将检索数据流,将其反序列化为
列表
,并将其返回给调用代码
如果不成功(else子句),则处理失败…在这里,您可以进行任何要进行的检查、记录错误、显示消息等
我在这里试图展示的是如何解决您的问题,以及其他异常,如NotFound(404)异常等的方向
您也可以使用response.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
}
}
公共异步任务GetContactsAsync()
{
var response=wait httpClient.GetAsync(“api/contacts”);
//response.EnsureSuccessStatusCode();
if(响应。IsSuccessStatusCode)
{
//成功
var responseContent=await response.Content.ReadAsStreamAsync();
返回等待JsonSerializer.DeserializeAsync(responseContent);
}
其他的
{
//处理失败
}
}
浏览器控制台中是否有任何错误?有“WebAssembly.JSException:TypeError:Failed to fetch”您使用的是http还是https?我使用的是httpsIs它在您仅使用http时工作?浏览器控制台中是否有任何错误?有“WebAssembly.JSException:TypeError:Failed to fetch”您使用的是http还是https?我使用的是httpsIs,当您仅使用http时,它可以工作?如果响应存在,则此代码可以完美工作。如果它没有代码抛出
WebAssembly.JSException
。那么处理异常。正如我上面提到的。解决方案就是我在这里提供的方向。我不会为一个没有代码的问题指定一个简洁的解决方案。只是在哪里寻找解决方案。请注意,您所面临的与http/https无关…我可以处理此异常,没有问题。问题是HttpClient的行为异常。我相信这会给我带来很多问题。也许,我应该去aspnet github发布一个问题吗?现在你已经偏离了问题的主题。。。没有问题,您可以在stackoverflow和github中发布您的问题。不要期望从那里得到更好的答案,即使是asp.net团队,他们通常会将人们重定向到stackoverflow,除非所讨论的问题显然是bug的性质。但是,您应该提供完整的代码回购,并清楚地说明您所做的事情和您期望完成的事情……如果响应存在,此代码工作得非常完美。如果它没有代码抛出WebAssembly.JSException
。那么处理异常。正如我上面提到的。解决方案就是我在这里提供的方向。我不会为一个没有代码的问题指定一个简洁的解决方案。只是在哪里寻找解决方案。请注意,您所面临的与http/https无关…我可以处理此异常,没有问题。问题是HttpClient的行为异常。我相信这会给我带来很多问题。也许,我应该去aspnet github发布一个问题吗?现在你已经偏离了问题的主题。。。没有问题,您可以在stackoverflow和github中发布您的问题。不要期望从那里得到更好的答案,即使是asp.net团队,他们通常会将人们重定向到stackoverflow,除非所讨论的问题显然是bug的性质。但是,您应该提供完整的代码回购,并清楚地说明您所做的事情和您期望完成的事情。。。