Асинхронный метод Как я могу связать значения с IEnumarable - PullRequest
0 голосов
/ 06 февраля 2019

Здесь я получаю некоторые значения с сервера

public class iAuth
    {
        public string resultStatus { get; set; }
        public string userName { get; set; }

    }

Этот IAuth, мне нужно связать мои данные

private async Tas<bool> GetValiedSession(string _SesToken)
    {
        string Baseurl = WebConfigurationManager.AppSettings["Baseurl"];
        var values = new Dictionary<string, string>{
                      { "productId",  WebConfigurationManager.AppSettings["productId"] },
                      { "productKey",  WebConfigurationManager.AppSettings["productKey"] },
                      { "userName", "gosoddin" },
                      { "securityToken",_SesToken  },
                      };
        using (var client = new HttpClient())
        {
            var _json = JsonConvert.SerializeObject(values);
            var content = new StringContent(_json, Encoding.UTF8, "application/json");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var response = await client.PostAsync(Baseurl + "validate/session", content);              
            //var responseString = await response.Content.ReadAsStringAsync();
           IEnumerable<iAuth> aa  = await response.Content.ReadAsStringAsync(); ;
            //  return Ok(responseString);
            return true;
        }

    }

Вот как я могу связать значения с IEnumarable<iAuth> Здесь я получаю ошибкукак не могу преобразовать строку в system.colllection.Generic

1 Ответ

0 голосов
/ 06 февраля 2019

Вы пытаетесь прочитать содержание вашего ответа на IEnumerable<>

IEnumerable<iAuth> aa  = await response.Content.ReadAsStringAsync();

Но ReadAsStringAsync() возвращает string, поэтому возникает ошибка.

Так что вам нужночтобы десериализовать ваш Response.Content до определенного типа, например,

string response  = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<iAuth>(response);

Теперь вы можете получить resultStatus и userName, используя, как,

string status = result.resultStatus;
string name = result.userName;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...