【问题标题】:How to pass header values in web api using HttpClient如何使用 HttpClient 在 Web api 中传递标头值
【发布时间】:2017-03-22 21:36:44
【问题描述】:

我是 ASP.NET Web API 2 的新手。我正在尝试访问第三方 API,因此要首先访问它,我需要在带有 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;

 }

【问题讨论】:

  • 显示与邮递员一起使用的(已清理的)原始请求

标签: c# asp.net-web-api2 dotnet-httpclient


【解决方案1】:

如果为其所有请求设置HttpClient 的默认授权标头,请在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.

任何使用客户端发出的请求都会有一个授权标头

Authorization Token MyToken

【讨论】:

    猜你喜欢
    • 2022-01-26
    • 2012-02-26
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 2017-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多