2015-04-07 2 views
3

Я пытаюсь запросить список тегов на StackExchange в формате JSON на url, но проблема в том, что я получаю некоторый разбитый текст вместо JSON, поэтому я даже не могу его разобрать ,Оформить заявку на StackExchange Api

P.S. Выполнено с помощью RestSharp.

private void Refresh() 
    { 
     var client = new RestClient("http://api.stackexchange.com/2.2/tags?order=desc&sort=popular&site=stackoverflow"); 

     var result = client.Execute(new RestRequest(Method.GET)); 

     var array = JsonConvert.DeserializeObject<Root>(result.Content); 

     Platforms = array.Platforms; 
    } 
+0

Пожалуйста, отредактируйте ваш вопрос] (http://stackoverflow.com/posts/29486722/edit) и включите ** сломанный текст **. – ekad

+1

Я не использую C#, но я столкнулся с stackexchange api, и из того, что я испытал, ответ был закодирован gzip. С использованием Java-клиента, который я использовал, мне пришлось использовать gzip-декодер. –

+0

Не отменяйте свой вопрос, когда вы нашли ответ. Пожалуйста, отправьте ответ своим решением] (http://stackoverflow.com/revisions/29486722/3). – CodeCaster

ответ

2

Если вы сделаете запрос GET к этому URL, используя Fiddler, вы увидите, что ответ имеет заголовок:

Content-Encoding: gzip 

Это означает, что реакция сжимается с помощью Gzip. Хорошая новость заключается в том, что HttpWebRequest может справиться с этим:

request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; 

После добавления этой строки вы получите хороший и читаемый JSON.

+0

Idk почему, но не работал для меня. Я использовал RestSharp, и теперь все в порядке. Спасибо за помощь. –

+0

Я проверил это с вашим кодом, и он сработал. Но в любом случае, я думаю, что использовать RestSharp неплохо. –

Смежные вопросы