Android - JSON Parsing выдает неожиданное исключение символа - PullRequest
0 голосов
/ 08 июня 2018

Я занимаюсь разработкой приложения для Android c#, которое получает цену (в формате JSON) от определенной url, а затем анализирует ее, чтобы узнать цену.Я пробовал несколько методов, чтобы сделать это, но каждый метод выдает определенное исключение.Вот мой недавний:

public string getprice()
    {
        HttpWebRequest webReq = (HttpWebRequest)HttpWebRequest.Create("https://api.cryptonator.com/api/ticker/etc-usd");
        webReq.CookieContainer = new CookieContainer();
        webReq.Method = "GET";
        using (WebResponse response = webReq.GetResponse())
        {
            using (Stream stream = response.GetResponseStream())
            {
                StreamReader reader = new StreamReader(stream);
                var array = JsonValue.Parse(reader.ReadToEnd());
                string price = array["ticker"]["price"].ToString();
                return price;
            }
        }
    }

Итак, иногда он работает нормально, а иногда выдает это исключение

system.argumentexception: неожиданный символ '<' в строке 1 столбца0 </p>

Это приложение отладило мое приложение 19 раз, чтобы протестировать его, оно работало нормально первые 15 раз, а после этого каждый раз, когда оно выполнялось, выдает ошибку выше.Я не знаю, почему это происходит.Не могли бы вы помочь мне?

РЕДАКТИРОВАТЬ

Я использовал Fiddler для проверки необработанного запроса, как рекомендовал @Fenton.Вот что у меня есть here

1 Ответ

0 голосов
/ 08 июня 2018

Наиболее вероятная причина этой проблемы заключается в том, что ответ на самом деле не является JSON.

Здесь указывается <.

Две распространенные причины этого:

  • Веб-API, который вы вызываете, имеет ошибку, и страница ошибки - HTML (таким образом, он запускается <)
  • Веб-API может возвращать различные форматы данных и отправляет вамXML (проверьте заголовок принятия и убедитесь, что API его соблюдает).

Проверьте необработанный запрос (например, с помощью Fiddler), чтобы увидеть фактический ответ, или посмотрите необработанный ответ в режиме отладки.

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