Как прочитать данные заголовка из ответа веб API в ядре .net? - PullRequest
0 голосов
/ 08 декабря 2018

Я вызываю методы 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 []".

Пожалуйста, покажите мне правильный способ получения данных из заголовка ответа

1 Ответ

0 голосов
/ 08 декабря 2018

Извините ... Я нашел решение ... и это очень просто

            var headers = response.Headers;
            string role = "";
            if (headers.TryGetValues("Role", out IEnumerable<string> headerValues))
            {
                role = headerValues.FirstOrDefault();
            }

, но вы должны использовать пространство имен System.Linq

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...