如何向 HttpClient() 添加自定义 header?
How to add a custom header to HttpClient()?
我正在尝试向我的 Web 应用程序的请求 header 添加自定义 header。在我的 Web 应用程序中,我正在从 Web api 检索数据,在此请求中,我想添加一个包含字符串 sessionID 的自定义 header。我正在寻找一个通用的解决方案,这样我就不必在每次调用之前都添加相同的代码。
我的控制器看起来像这样:
[HttpGet]
public async Task<ActionResult> getCall()
{
string url = "http://localhost:51080/";
string customerApi = "customer/1";
using (var client = new HttpClient())
{
//get logged in userID
HttpContext context = System.Web.HttpContext.Current;
string sessionID = context.Session["userID"].ToString();
//Create request and add headers
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//Custom header
//Response
HttpResponseMessage response = await client.GetAsync(customerApi);
if (response.IsSuccessStatusCode)
{
string jsondata = await response.Content.ReadAsStringAsync();
return Content(jsondata, "application/json");
}
return Json(1, JsonRequestBehavior.AllowGet);
}
}
希望大家帮帮忙!
提前致谢!
Collection 在 DefaultRequestHeaders
后面有 Add 方法,可以让你添加任何你需要的 header:
client.DefaultRequestHeaders.Add("headerName", sesssionID);
试试这个:
client.DefaultRequestHeaders.Add("X-Version","1");
我正在尝试向我的 Web 应用程序的请求 header 添加自定义 header。在我的 Web 应用程序中,我正在从 Web api 检索数据,在此请求中,我想添加一个包含字符串 sessionID 的自定义 header。我正在寻找一个通用的解决方案,这样我就不必在每次调用之前都添加相同的代码。
我的控制器看起来像这样:
[HttpGet]
public async Task<ActionResult> getCall()
{
string url = "http://localhost:51080/";
string customerApi = "customer/1";
using (var client = new HttpClient())
{
//get logged in userID
HttpContext context = System.Web.HttpContext.Current;
string sessionID = context.Session["userID"].ToString();
//Create request and add headers
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//Custom header
//Response
HttpResponseMessage response = await client.GetAsync(customerApi);
if (response.IsSuccessStatusCode)
{
string jsondata = await response.Content.ReadAsStringAsync();
return Content(jsondata, "application/json");
}
return Json(1, JsonRequestBehavior.AllowGet);
}
}
希望大家帮帮忙!
提前致谢!
Collection 在 DefaultRequestHeaders
后面有 Add 方法,可以让你添加任何你需要的 header:
client.DefaultRequestHeaders.Add("headerName", sesssionID);
试试这个:
client.DefaultRequestHeaders.Add("X-Version","1");