C# 如何在 GET 方法中使用 HttpClient 设置自定义请求标头



我正在使用 HttpClient 发送请求,我想在 GET 方法中使用 HttpClient 使用我的自定义请求标头?

这是我的代码:

public HttpResponseMessage Get(string url, List<KeyValuePair<string, string>> headers = null)
    {
        HttpRequestMessage request = new HttpRequestMessage()
        {
            RequestUri = new Uri(url),
            Method = HttpMethod.Get,
        };
        if (headers != null && headers.Count > 0)
        {
            foreach (var header in headers)
            {                    
                request.Headers.Add(header.Key, header.Value);
            }
        }            
        HttpResponseMessage response = httpClient.SendAsync(request).Result;
        return response;
    }

但它在request.Headers.Add(header.Key, header.Value);抛出了一个错误

以下是错误消息:

误用的标头名称。确保请求标头与 HttpRequestMessage 一起使用,响应标头与 HttpResponseMessage 一起使用,内容标头与 HttpContent 对象一起使用。

任何帮助将不胜感激

您应该使用HttpClient实例执行此操作,如下所示:

httpClient.DefaultRequestHeaders
      .Accept
      .Add(new MediaTypeWithQualityHeaderValue("x-your-custom-header"));

最新更新