2010-07-17 2 views
2

Если я ввожу в браузере (см https://stackapps.com/questions/2/getting-started-with-the-api):Почему rebol не работает с stackoverflow api?

http://api.stackoverflow.com/1.0/stats

возвращает

{ 
    "statistics": [ 
    { 
     "total_questions": 800830, 
     "total_unanswered": 131356, 
     "total_accepted": 500653, 
     "total_answers": 2158752, 
     "total_comments": 3125048, 
     "total_votes": 7601765, 
     "total_badges": 798091, 
     "total_users": 289282, 
     "questions_per_minute": 1.50, 
     "answers_per_minute": 3.12, 
     "badges_per_minute": 1.20, 
     "views_per_day": 455215.44, 
     "api_version": { 
     "version": "1.0", 
     "revision": "2010.7.17.1" 
     }, 
     "site": { 
     "name": "Stack Overflow", 
     "logo_url": "http://sstatic.net/stackoverflow/img/logo.png", 
     "api_endpoint": "http://api.stackoverflow.com", 
     "site_url": "http://stackoverflow.com", 
     "description": "Q&A for professional and enthusiast programmers", 
     "icon_url": "http://sstatic.net/stackoverflow/apple-touch-icon.png", 
     "state": "normal", 
     "styling": { 
      "link_color": "#0077CC", 
      "tag_foreground_color": "#3E6D8E", 
      "tag_background_color": "#E0EAF1" 
     } 
     } 
    } 
    ] 
} 

Если я печатаю это в Rebol; консоли:

read http://api.stackoverflow.com/1.0/stats 

Он возвращает некоторую w три бинарных символа.

ответ

3
probe load to-string gunzip to-string read/binary http://api.stackoverflow.com/1.0/stats 
connecting to: api.stackoverflow.com 
{ 
    "statistics": [ 
    { 
     "total_questions": 801559, 
     "total_unanswered": 131473, 
     "total_accepted": 501129, 
     "total_answers": 2160171, 
     "total_comments": 3127759, 
     "total_votes": 7607247, 
     "total_badges": 798608, 
     "total_users": 289555, 
     "questions_per_minute": 0.93, 
     "answers_per_minute": 1.83, 
     "badges_per_minute": 0.73, 
     "views_per_day": 455579.60, 
     "api_version": { 
     "version": "1.0", 
     "revision": "2010.7.17.2" 
     }, 
     "site": { 
     "name": "Stack Overflow", 
     "logo_url": "http://sstatic.net/stackoverflow/img/logo.png", 
     "api_endpoint": "http://api.stackoverflow.com", 
     "site_url": "http://stackoverflow.com", 
     "description": "Q&A for professional and enthusiast programmers", 
     "icon_url": "http://sstatic.net/stackoverflow/apple-touch-icon.png", 
     "state": "normal", 
     "styling": { 
      "link_color": "#0077CC", 
      "tag_foreground_color": "#3E6D8E", 
      "tag_background_color": "#E0EAF1" 
     } 
     } 
    } 
    ] 
} 
+0

Ничего себе ты гениальный :) –

2

REBOL игнорирует заголовок ответа Content-Encoding: gzip, который, как представляется, непревзойденный для использования, независимо от того, что вы положили в свой заголовок Accept-Encoding:. На Unix, Wget и локон та же проблема, но я могу это сделать, чтобы увидеть предполагаемое содержание:

curl http://api.stackoverflow.com/1.0/stats | zcat 

ли REBOL есть способ распаковки GZIP контента?

+0

Я нашел LIB здесь http://www.rebol.org/view-script.r?script=gunzip. r поэтому я попробую спасибо. –

1

на основе http://www.mail-archive.com/[email protected]/msg03531.html

>> do http://www.rebol.org/download-a-script.r?script-name=gunzip.r 
connecting to: www.rebol.org 
Script: "gunzip" (30-Dec-2004) 
>> print to-string gunzip read http://api.stackoverflow.com/1.0/stats 
connecting to: api.stackoverflow.com 
{ 
    "statistics": [ 
    { 
     "total_questions": 801316, 
     "total_unanswered": 131450, 
     "total_accept���������������������accept������E531450, 
     "tocomment312672�vote7605283badge7984187946531450, 
    tal_unans_per_minutet.0531450, 
.... 

почти работает :) поэтому основной код все есть, просто не подвергается правильно ... жаль, действительно ...

но StackOverflow не приятно либо не является жалоба на HTTP спецификации и игнорируя заголовок Accept-Encoding ...

+0

Я сообщу api, но поскольку я не специалист, как я должен точно сформулировать это? –

+2

«Сервер API возвращает gzipped-контент независимо от наличия и значения HTTP-заголовка Accept-Encoding. Почитайте его, чтобы избежать путаницы и упростить эксперименты». - что-то вроде этого – onetom