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

C# WinForm登录API遇400错误,如何添加Authorization与Host请求头?

解决C# WinForm调用API时400 Bad Request错误(添加请求头)

你可以通过WebRequest.Headers属性直接添加Authorization和Host请求头,以下是修改后的完整代码,同时优化了资源释放逻辑避免内存泄漏:

private string ProcessURL(string url, string method, string post)
{
    ASCIIEncoding encoding = new ASCIIEncoding();
    byte[] data = encoding.GetBytes(post);
    string rc = "";
    
    WebRequest request = WebRequest.Create(url);
    
    // 添加Authorization请求头,替换为实际授权信息(比如Bearer令牌)
    request.Headers.Add("Authorization", "Bearer YourValidAuthToken");
    // 添加Host请求头,可直接写目标API域名,或从url解析
    Uri apiUri = new Uri(url);
    request.Headers.Add("Host", apiUri.Host);

    if (!string.IsNullOrEmpty(post))
    {
        request.Method = method;
        request.ContentType = "application/json";
        request.ContentLength = data.Length;

        // 使用using自动释放流资源
        using (Stream stream = request.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }

        using (WebResponse response = request.GetResponse())
        using (Stream stream = response.GetResponseStream())
        using (StreamReader sr = new StreamReader(stream))
        {
            rc = sr.ReadToEnd();
        }
    }
    else
    {
        using (WebResponse response = request.GetResponse())
        using (StreamReader sr = new StreamReader(response.GetResponseStream()))
        {
            rc = sr.ReadToEnd();
        }
    }
    return rc;
}

关键说明

  • Authorization头:根据API要求的格式填写,常见格式为Bearer 你的令牌字符串,或者Basic认证的Base64编码账号密码,务必替换为实际有效的授权信息。
  • Host头:如果API强制要求指定,可直接写目标域名(如api.your-service.com),也可以通过Uri对象从传入的url中自动解析,避免硬编码。
  • 资源优化:原代码手动关闭流容易遗漏,改用using语句可确保资源自动释放,避免内存泄漏。
  • 空值判断:用string.IsNullOrEmpty(post)替换原有的post != "",逻辑更严谨。

如果添加请求头后仍出现400错误,建议排查:

  • POST的JSON内容是否有语法错误
  • 请求方法(GET/POST)是否与API要求一致
  • 用Postman等工具先验证API参数和请求头的正确性

内容的提问来源于stack exchange,提问作者Sinan BENLİBAŞ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:50:23