Чтение строки из HttpResponseMessage - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь прочитать строку из моего сообщения HttpResponseMessage.Это мой контроллер.

[HttpGet]
[Route("api/Predracun/GetPredracunBroj/")]
public string GetPredracunBroj()
{
    string broj = "";

    List<Predracun> pred = db.Predracun.ToList();

    if (pred.Count != 0)
    {
        broj = db.Predracun.OrderByDescending(x => x.Broj).Select(x => x.Broj).First();

        int crtica = broj.IndexOf('/');
        string brSledeci = broj;

        brSledeci = broj.Substring(0, crtica);


        return brSledeci;
    }
    else
        return broj;
}

Возвращаемый номер в строковом формате.Как мне прочитать эту строку в моей форме?

HttpResponseMessage responseString = predracunService.GetActionResponse("GetPredracunBroj");
if (responseString.IsSuccessStatusCode)
{
    if (responseString.Content.ReadAsAsync<string>().Result != "")
    {
        List<string> brj = responseString.Content.ReadAsAsync<List<string>>().Result;
        br = brj[0];

        // br = await responseString.Content.ReadAsStringAsync(); //right!
        prvibroj = Convert.ToInt32(br);
        ++prvibroj;
    }

}            

1 Ответ

0 голосов
/ 27 августа 2018

.Результат, который вы не должны использовать.Это может привести к тупику.Также вы возвращаете строку как ответ от API, следовательно;в результате вы должны получить строку, а не список.Надеюсь, это поможет.

public async Task<int> GetPredracunBroj()
{
    int result = 0;

    HttpResponseMessage responseMessage = predracunService.GetActionResponse("GetPredracunBroj");
    if (responseMessage.IsSuccessStatusCode)
    {
        string responseString = await responseMessage.Content.ReadAsStringAsync();

        if (!int.TryParse(responseString, out result))
        {
            throw new ArgumentException($"Argument is not expected format [{responseString}]");
        }
    }

    return result;
}
...