You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET中HttpClient重复请求返回403但Postman、Python请求正常如何解决

问题原因

你出现403错误的核心原因是HttpClient为静态单例实例,你在循环中重复调用DefaultRequestHeaders.Add("apikey", "myPassword"),会导致请求头中累计追加多个apikey字段,服务端校验时识别到异常的多值请求头,直接返回403。Python和Postman请求时每次都是独立的请求头配置,不会出现重复追加的问题,因此返回200。

可行解决方案

方案1:每次请求独立配置请求头(推荐)

不要将自定义请求头加到全局的DefaultRequestHeaders,而是每次创建独立的HttpRequestMessage配置请求头,避免全局污染:

private static HttpClient req { get; set; } = new HttpClient();

static async Task Main(string[] args)
{
    Console.WriteLine("Please press enter to start healthCheck");
    Console.ReadLine();

    // 补充await避免未观察异常
    await healthCheck();

    Console.ReadLine();
}

private static async Task healthCheck()
{
    string strUrl = "http://myUrl";
    while (true)
    {
        // 每次创建独立的请求消息对象配置头
        using var request = new HttpRequestMessage(HttpMethod.Get, strUrl);
        request.Headers.Add("apikey", "myPassword");
        
        HttpResponseMessage hrm = await req.SendAsync(request);

        Console.WriteLine("=> statusCode:" + (int)hrm.StatusCode);

        await Task.Delay(5000);
    }
}

方案2:全局请求头只初始化一次

如果apikey是固定值,直接在HttpClient初始化时配置一次即可,不要放在循环中重复添加:

// 初始化时就加好全局头,不要在循环里重复加
private static HttpClient req { get; set; } = new HttpClient()
{
    DefaultRequestHeaders = 
    {
        { "apikey", "myPassword" }
    }
};

static async Task Main(string[] args)
{
    Console.WriteLine("Please press enter to start healthCheck");
    Console.ReadLine();

    await healthCheck();

    Console.ReadLine();
}

private static async Task healthCheck()
{
    string strUrl = "http://myUrl";
    while (true)
    {
        HttpResponseMessage hrm = await req.GetAsync(strUrl);
        Console.WriteLine("=> statusCode:" + (int)hrm.StatusCode);
        await Task.Delay(5000);
    }
}

补充排查点

如果修改后仍出现403,可补充配置默认User-Agent,部分服务端会拦截无User-Agent的请求:

req.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36");

内容的提问来源于stack exchange,提问作者Amirali Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:27:01