BlazorWASM:httpResponse.StatusCode总是为0
创始人
2024-12-21 22:30:15
0

在使用 Blazor WebAssembly(WASM)时,检查 httpResponse.StatusCode 的值时,通常会遇到其总是返回 0 的情况。这是因为 Blazor WASM 使用 ASP.NET Core 的默认行为,该行为会将未能处理请求的所有异常设置为状态码 0。要解决此问题,我们可以使用自定义消息处理程序来实现将异常映射回状态码。下面是一个示例代码:

using System.Net;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;

public class StatusCodeMessageHandler : DelegatingHandler
{
    protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        var response = await base.SendAsync(request, cancellationToken);

        if ((int)response.StatusCode == 0 && response.Content != null)
        {
            var errorResponse = await response.Content.ReadAsAsync(cancellationToken);

            if (errorResponse?.StatusCode != null)
            {
                response.StatusCode = (HttpStatusCode)errorResponse.StatusCode;
            }
        }

        return response;
    }
}

public class ErrorResponse
{
    public int? StatusCode { get; set; }
    public string ErrorMessage { get; set; }
}

上面的代码定义了一个自定义的消息处理程序,该程序检查是否存在状态码为 0 的 HttpResponse,并将其解析为 ErrorResponse。如果 ErrorResponse 包含状态码,则将其映射回 response.StatusCode,并返回响应。要使用该处理程序,请将其添加到 HttpClient 中:

var httpClient = new HttpClient(new StatusCodeMessageHandler())

这样,我们就能够正确地获取到 httpResponse.StatusCode 的值了。

相关内容

热门资讯

关于!微信微乐自建房辅助工具,... 关于!微信微乐自建房辅助工具,微乐家乡麻将自建房辅助app(开挂自建房)方法1)微乐家乡麻将自建房辅...
大家学习交流!微信卡五星辅助器... 大家学习交流!微信卡五星辅助器,微乐小程序免费黑科技(开挂自建房)方法1、很好的工具软件,可以解锁游...
三分钟了解!微乐微信自建房辅助... 三分钟了解!微乐微信自建房辅助工具插件,微乐家乡麻将自建房辅助app(开挂自建房)工具1、三分钟了解...
一分钟教会你!微乐家乡麻将自建... 一分钟教会你!微乐家乡麻将自建房辅助app,微乐自建房脚本免费入口(开挂自建房)方法1、用户打开应用...
分享实测!微信微乐自建房辅助工... 分享实测!微信微乐自建房辅助工具,微乐自建房脚本免费入口(开挂自建房)器1、起透看视 微信微乐自建房...
重大通报!微乐自建房辅助工具脚... 重大通报!微乐自建房辅助工具脚本,微乐小程序免费黑科技(开挂自建房)app微乐自建房辅助工具脚本破解...
如何分辨真伪!微乐微信自建房辅... 如何分辨真伪!微乐微信自建房辅助工具插件,微乐小程序免费黑科技(开挂自建房)技巧1、微乐微信自建房辅...
我来教教你!微乐自建房辅助工具... 我来教教你!微乐自建房辅助工具挂,微乐家乡麻将自建房辅助app(开挂自建房)工具1、玩家可以在微乐家...
重大来袭!微乐自建房辅助工具神... 重大来袭!微乐自建房辅助工具神器,微乐小程序免费黑科技(开挂自建房)器1、游戏颠覆性的策略玩法,独创...
带你了解!微信卡五星辅助器,微... 带你了解!微信卡五星辅助器,微乐自建房脚本免费入口(开挂自建房)方法1、带你了解!微信卡五星辅助器,...