【发布时间】:2018-12-08 03:35:39
【问题描述】:
我正在从我的客户端项目中调用 Web API 方法并将响应标头中的值返回给客户端:
[HttpPost]
[AllowAnonymous]
[Route("login")]
public IActionResult Login(Users user)
{
string s = _repository.Users.ValidateUser(user);
if (s == "success")
{
Users u = _repository.Users.FindByUserName(user.UserName);
int pid = u.PersonId;
string role = "";
if (u != null)
{
role = _repository.RoleManager.GetRole(u.Id);
}
Response.Headers.Add("Role", role);
return Ok(pid.ToString());
}
}
我尝试使用以下代码在客户端应用程序中获取标头值:
[HttpPost]
public IActionResult Login(Users user)
{
string pid = "";
HttpClient client = service.GetService();
HttpResponseMessage response = client.PostAsJsonAsync("api/mymethod", user).Result;
Task<string> tokenResult = response.Content.ReadAsAsync<string>();
pid = tokenResult.Result.ToString();
var headers = response.Headers;
string role = "";
if (headers.TryGetValues("Role", out IEnumerable<string> headerValues))
{
role = headerValues.ToString();
}
return RedirectToAction("Profile");
}
但它返回System.String[]。
请告诉我从响应头中获取数据的正确方法。
【问题讨论】:
-
感谢回复...它显示从请求中读取数据,但我想从响应头中读取数据
-
能否添加getRole-method的代码?我认为这是混乱的根源
标签: c# asp.net-core asp.net-core-webapi