Json ошибка возникает после успешного кода состояния. При анализе значения обнаружен неожиданный символ: {. Путь '', строка 1, позиция 2 - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь прочитать список клиентов, использующих API. Вызов api возвращает код состояния успеха, но в этой строке li = await response.Content.ReadAsAsync<List<string>>(); я получаю сообщение об ошибке:

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде. Сведения об исключении: Newtonsoft. Json .JsonReaderException: неожиданный символ, обнаруженный при разборе значения: {. Путь '', строка 1, позиция 2.

мое исследование показывает, что ошибка вызвана неправильной десериализацией и / или специальными символами. Как я могу скорректировать свой код, чтобы правильно вернуть список

public class HomeController : Controller
    {
        public async System.Threading.Tasks.Task<ActionResult> Index()
        {
            using (var client = new HttpClient())
            {
               client.BaseAddress = new Uri("http://localhost:55426/");
               client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response = await client.GetAsync("http://dev.api.company.net/api/Customers/GetAllCustomers");
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsAsync<IEnumerable<string>>();
                    if (result != null)
                    ViewBag.Message = "Your application description page.";
                }
            }

                //System.Net.WebClient wc = new System.Net.WebClient();
                //var jsonResponse = System.Net.WebClient.wc.DownloadString("YourApiUrl"); // you need to parse your json 
                // dynamic Data = Json.Decode(jsonResponse);
                return View();
        }
...