C # получить JSON из URL

Я создаю программу, которая получает рыночные цены Steam на различные предметы CS: GO и сравнивает их друг с другом. У меня возникли проблемы с добавлением JSON для Steam Market в мою программу. Market JSON Вот мой код:

using (WebClient webClient = new System.Net.WebClient())
{
    WebClient n = new WebClient(); // <-- error on this line
    string json = n.DownloadString("http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=P250%20%7C%20Valence%20(Factory%20New");
    dynamic array = JsonConvert.DeserializeObject(json);
    test.Text = array.lowest_price.ToString(); ;
}

Я получаю эту ошибку при создании экземпляра WebClient():

Необработанное исключение типа System.Net.WebException произошло в System.dll

Дополнительная информация: удаленный сервер возвратил ошибку: (500) Internal Server Error.

Это вообще действующий JSON? Если нет, есть ли альтернатива? Я слышал, что у backpack.tf тоже есть API. Было бы лучше? Спасибо


person CaptainUnicorn    schedule 09.11.2015    source источник
comment
Почему вы дважды создаете экземпляр WebClient?   -  person Steve    schedule 10.11.2015
comment
Ух ты. Даже не заметил этого. По-прежнему вызывает ту же ошибку   -  person CaptainUnicorn    schedule 10.11.2015
comment
Если вы нажмете «Просмотреть подробности» в окне исключения, вы сможете увидеть в свойстве ответа или во внутреннем исключении, которое должно предоставить вам дополнительную информацию.   -  person Steve    schedule 10.11.2015
comment
Ошибка 500 Internal Service error - это означает, что что-то пошло не так со службой на сервере, к которому обращается ваш клиент. Если у вас нет доступа к этой службе и серверу, вы, скорее всего, больше ничего не сможете определить. Вам нужно будет связаться с владельцем сервиса.   -  person Tim    schedule 10.11.2015
comment
Вы используете неправильный URL. Вставьте его в адрес браузера и посмотрите, какой результат вы получите. Вот URL-адрес, который работает с Получить цену на товар на Торговой площадке сообщества Steam с помощью PHP и Regex   -  person KiwiPiet    schedule 10.11.2015
comment
В вашем URL-адресе в коде отсутствует конечная скобка ")"   -  person KiwiPiet    schedule 10.11.2015


Ответы (2)


Похоже, URL неверный. Я просто попробовал http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=Shadow%20Case, и он дал хороший ответ.

Особого внимания заслуживают заключенные в круглые скобки в вашем URL-адресе.

person Chet    schedule 10.11.2015
comment
Это был URL-адрес, но сообщество Steam по-прежнему не работает. Вместо этого используйте файл backpack.tf. - person CaptainUnicorn; 10.11.2015

Фиксированный код:

using (var webClient = new System.Net.WebClient())
{
    var json = webClient.DownloadString("http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=P250%20%7C%20Valence%20(Factory%20New)");
    dynamic array = JsonConvert.DeserializeObject(json);
    var price = array.lowest_price.ToString(); ;
}
person KiwiPiet    schedule 09.11.2015