我订阅了金融数据提供商ORATS。软件工程师与我联系,让我知道我的GET()请求正在超时。他说允许在我的GET()请求标头中使用gzip编码。 SWE不使用R编写代码,而是向我发送了一些node.js代码供您依赖。
我认为httr GET()请求会自动将文件压缩为gzip。
下面是SWE提供的node.js代码,其后是我当前的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)
我希望此代码请求gzip文件。 谢谢。
答案 0 :(得分:1)
还将相同的Accept-Encoding
行添加到httr GET请求中:
library(httr)
x = GET(url, add_headers(.headers = c('Authorization'= token,
'Accept-Encoding' = 'gzip, deflate')))