设置HttpClient的授权标头

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置HttpClient的授权标头相关的知识,希望对你有一定的参考价值。

我有以下代码,我想将post请求的授权设置为:

Authorization:key=somevalue

using (HttpClient client = new HttpClient())
{
     using (StringContent jsonContent = new StringContent(json))
     {
         jsonContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

         using (HttpResponseMessage response = await client.PostAsync("https://android.googleapis.com/gcm/send", jsonContent))
         {
            var reponseString = await response.Content.ReadAsStringAsync();
         }
     }
}

这该怎么做?我真的很挣扎以及以下声明

client.DefaultRequestHeaders.Add("Authorization", "key=" + apiKey);

抛出以下异常

System.Net.Http.dll中出现“System.FormatException”类型的异常,但未在用户代码中处理

答案

我通过以下代码解决了这个问题。

client.DefaultRequestHeaders.Authorization =
       new AuthenticationHeaderValue("key", "=" + apiKey);

以上是关于设置HttpClient的授权标头的主要内容,如果未能解决你的问题,请参考以下文章

设置HttpClient的授权头

Angular HttpClient 阻塞授权标头

未通过 HttpClient 请求发送的授权标头

c# httpclient 授权标头对我不起作用?

使用 IHttpClientFactory 设置默认请求标头

HttpClient PostAsync 到 Blogger API