如何使用 HttpClient 在 Web api 中传递标头值
Posted
技术标签:
【中文标题】如何使用 HttpClient 在 Web api 中传递标头值【英文标题】:How to pass header values in web api using HttpClient 【发布时间】: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;
【问题讨论】:
显示与邮递员一起使用的(已清理的)原始请求 【参考方案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
【讨论】:
以上是关于如何使用 HttpClient 在 Web api 中传递标头值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中使用 HttpClient 读取 Web api 响应
如何使用 HttpClient 将 JSON 数据发布到 Web API
如何使用存储在会话存储中的访问令牌使用 HttpClient 进行 Web api 调用?
如何在使用 HttpClient 使用 Asp Net Web Api 的 Asp Net Mvc 中提供实时数据?