Принять кодировку gzip с использованием httr R - PullRequest
3 голосов
/ 04 мая 2019

Я подписываюсь на поставщика финансовых данных ORATS. Инженер-программист обратился ко мне, чтобы сообщить, что мои GET () запросы истекают. Он сказал разрешить кодировку gzip в моем заголовке запроса GET (). SWE не кодирует в R и послал мне некоторый код node.js, на который можно опереться.

Я думал, что запрос httr GET () автоматически сжимает файлы в gzip.

Ниже приведен код node.js, предоставленный SWE, за которым следует мой текущий код R, который работал до тех пор, пока я не увеличил размер файла, который извлекаю из их API (начиная с тайм-аута).

const request = require('request');

const options = {
  url: 'https://api.orats.io/data/cores/general?include=earn',
  headers: {
  'Authorization' : 'your authorization token',
  'Accept-Encoding' : 'gzip'
  },
  gzip : true
};

request(options, function(err, response, body){
// Body is already uncompressed b/c the request library uncompresses it for you.
console.log(JSON.parse(body));
});


R code:
library(httr)
x = GET(url, add_headers(Authorization = token))
y = rawToChar(x$content)

Я хотел бы, чтобы этот код запрашивал файл gziped. Спасибо.

1 Ответ

1 голос
/ 13 мая 2019

Добавьте ту же строку Accept-Encoding в запрос GET httr:

library(httr)
x = GET(url, add_headers(.headers = c('Authorization'= token,
                                      'Accept-Encoding' = 'gzip, deflate')))

Обратите внимание, что httr автоматически распаковывает ответ .

...