Другой формат данных при использовании API стека Exchange в браузере и от NodeJS или curl - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь получить данные ответа через API StackExchange. До сих пор я нашел URL, который я хочу извлечь из своего приложения, и в браузере он возвращает ожидаемые данные в виде обычного текста, JSON.

https://api.stackexchange.com/2.2/questions/18632/answers?site=codegolf.meta&filter= !. FjsvG2X2tViZPCgDuGvW88wrGptD

Возвращает ожидаемые данные

{"items":[{"owner":{"display_name":"AJFaraday"},"answer_id":18633,"body":"<h1>My Answer</h1>\n\n<pre><code>class...

Проблема заключается в том, что, когда я пытаюсь получить доступ к этому же URL из моего кода (приложение NodeJS, использующее модуль https), возвращенные данные тела показывают некоторые бессмысленные символы, предположительно необработанные данные, вместо ожидаемого простого текста.

Вот код JS, который я пробую, используя библиотеку запросов в NodeJS.

const request = require('request');
this.url = 'https://api.stackexchange.com/2.2/questions/' + question_id +
  '/answers?site=' + site + '&filter=!.FjsvG2X2tViZPCgDuGvW88wrGptD';

request(
  this.url,
  {json: true},
  function (err, res, body) {
    if (err) {
      return console.log(err);
    }
    console.log(body);
  }
);

Я могу воспроизвести это с помощью curl, чтобы показать вам данные, которые я получаю ...

$ curl 'https://api.stackexchange.com/2.2/questions/18632/answers?site=codegolf.meta&filter=!.FjsvG2X2tViZPCgDuGvW88wrGptD'
�
|�Qk�0ǿʑ�QZ�s��܃?�J��لդ$鴔~����@r����?�a�dH�m�:K�$�,h�JzB��ךj�hMڀPiΨS�HM�dJ���*�I���2���Jc�C�raBS*�*
                               #p���P�CM%S'χ�̝��,����#^?�9��[�x�n���8�:X������9��#���G���o��^���`ō�-{���D���v
��[�N�v����yi��:[

Почему это ведет себя по-разному в браузере и в программах c запросов?

Нужно ли указывать что-то о кодировке текста в моем запросе?

Что мне здесь не хватает?

...