如何使用 HttpClient 在 Web api 中传递 header 值

How to pass header values in web api using HttpClient

我是 ASP.NET 网络新手 API 2. 我正在尝试访问第三方 API,因此要首先访问它,我需要通过授权令牌在 header 和 API URL 中。我可以使用 Postman 访问数据,但无法使用 Code。

以下是我的代码,我不确定我的方向是否正确。任何帮助,将不胜感激。

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("Url");
    client.DefaultRequestHeaders.Accept.Clear();
    client.DefaultRequestHeaders.Accept.Add(new HttpContext.Current.Request.Headers.Add("Authorization", "Token "+ "MyToken");
    var re = Request;
    var headers = re.Headers;

     if (headers.Contains("Token"))
     {
         string token = headers.GetValues("Token").First();
     }

     return null;

 }

如果为 HttpClient 的所有请求设置默认授权 header,请使用 client.DefaultRequestHeaders.Authorization

上设置的 AuthenticationHeaderValue

就像下面的例子...

//...other code removed for brevity

var tokenType = "Token"; //Other APIs use Bearer or other auth types.
var token = "MyToken";
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(tokenType, token);

//...other code removed for brevity.

使用客户端发出的任何请求都将获得授权header

Authorization Token MyToken