我订阅了金融数据提供商ORATS。软件工程师与我联系,让我知道我的GET()请求正在超时。他说允许在我的GET()请求 header 中使用gzip编码。 SWE不使用R编写代码,而是向我发送了一些node.js代码以供使用。
我以为httr GET()请求会自动将文件压缩为gzip。
下面是SWE提供的node.js代码,其后是我当前的R代码,直到我增加了从其API中提取的文件大小(开始超时)之前,我的R代码一直有效。
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文件。
谢谢你。
最佳答案
也将相同的Accept-Encoding
行添加到httr GET请求中:
library(httr)
x = GET(url, add_headers(.headers = c('Authorization'= token,
'Accept-Encoding' = 'gzip, deflate')))
注意httr automatically decompresses the response。
关于r - 使用httr R接受gzip编码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55977993/