我正在使用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对象一起使用。
任何帮助将不胜感激
答案 0 :(得分:1)
您应该使用您的HttpClient
实例,如下所示:
httpClient.DefaultRequestHeaders
.Accept
.Add(new MediaTypeWithQualityHeaderValue("x-your-custom-header"));