Как отправить двоичный буфер в запросе Nock Get? - PullRequest
0 голосов
/ 20 апреля 2019
  • Версия Nock: ^ 10.0.4

Запрос ниже всегда возвращает response в виде строки. Мне нужен формат JSON. Прямо сейчас я не могу получить res.data (возврат не определен), но я могу видеть res в виде строки.

  • Как получить формат ответа в формате JSON?

  • Вот мой запрос:

    nock('https://api.smartsheet.com/2.0/sheets/')
         .defaultReplyHeaders({
             "accept-encoding":"gzip, deflate",
             "accept": "application/json",
             "content-type": "application/json"
          })
         .get('/')
         .reply(200, {"data" : "test"});
  • Я попытался использовать JSON.parse ({"data": "test"), он все еще возвращает String в качестве ответа.
  • я тоже пробовал
    const buffer = Buffer.from(JSON.stringify({data: 'test'}));
    const compressed = zlib.gzipSync(buffer);
    nock('https://api.smartsheet.com/2.0/sheets/')
         .defaultReplyHeaders({
             "accept-encoding":"gzip, deflate",
             "accept": "application/json",
             "content-type": "application/json"
          })
         .get('/', compressed)
         .reply(200, () => compressed);

Но я не знаю, как отправить двоичный буфер в nock.

  • Как отправить двоичный буфер в запросе Get?

  • Код запроса:

        this.smartsheet = SmartsheetClient({
            accessToken: this.config.get('smartsheet.oauth_token'),
        });
        const [getError, sheets] = await this.to(this.smartsheet.sheets.listSheets());
        if (getError) {
            throw new this.Doh('Fail to get sheets', getError);
        }
        return sheets.data;

1 Ответ

0 голосов
/ 22 апреля 2019

Smartsheet API всегда возвращает JSON по умолчанию. Я не знаком с библиотекой nock, но, похоже, проблема в том, как это обрабатывает ответ. Возможно, вы захотите открыть вопрос на их Github , чтобы спросить об этом, если вы не слышите здесь. Я видел в вашем примере ваш URL-адрес https://api.smartsheet.com/2.0/sheet/ API Smartsheet использует множественные числа для имен в запросах, поэтому вместо запроса List Sheets . Должно быть https://api.smartsheet.com/2.0/sheets/.

...