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的性质。但是,您应该提供完整的代码回购,并清楚地说明您所做的事情和您期望完成的事情。。。