如何接收 gzip 数据? Node.js
how to receive gzip data ? Node.js
我正在尝试从 KEEPA 检索有关亚马逊产品的数据。
我正在努力以正确的 JSON 格式接收数据,因为 KEEPA 以 gzip 格式发送数据。
我尝试使用 'decompressResponse' 模块帮助获取数据 JSON 但每次调用都会收到多次。
由于代码如下所示,我的控制台出现了一大堆乱码。
让我知道我在这里缺少什么,或者如果您有更好的建议,请告诉我。
谢谢
const express = require("express");
const https = require("https");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html");
});
app.post("/", function(req, res) {
const query = req.body.asinId;
const apiKey = "MY_API_KEY";
const url = "https://api.keepa.com/product?key=" + apiKey + "&domain=1&asin=" + query;
const options = {
methode: "GET",
headers: {
"Content-Type": "application/json;charset=UTF-8",
"Accept-Encoding":"gzip"
}
}
https.get(url,options,function(res) {
console.log(res.statusCode);
console.log(res.headers);
var data;
res.on("data", function(chunk){
if(data){
data = chunk;
} else {
data += chunk;
}
console.log(data);
});
});
res.send("server is running");
});
app.listen(3000, function() {
console.log("server is running on port 3000");
});
您是否尝试过将内置 zlib
模块与 gunzip()
一起使用?
zlib.gunzip(data, (error, buff) => {
if (error != null) {
// An error occured while unzipping the .gz file.
} else {
// Use the buff which contains the unzipped JSON.
console.log(buff)
}
});
您的代码的完整示例:https://www.napkin.io/n/7c6bc48d989b4727
好吧,输出函数是错误的..下面是正确的
https.get(url,options,function(response) {
response = decompressResponse(response);
console.log(res.statusCode);
console.log(res.headers);
let data = '';
response.on("data", function(chunk){
data += chunk;
});
response.on("end",function(){
console.log(data);
});
});
我正在尝试从 KEEPA 检索有关亚马逊产品的数据。
我正在努力以正确的 JSON 格式接收数据,因为 KEEPA 以 gzip 格式发送数据。
我尝试使用 'decompressResponse' 模块帮助获取数据 JSON 但每次调用都会收到多次。
由于代码如下所示,我的控制台出现了一大堆乱码。 让我知道我在这里缺少什么,或者如果您有更好的建议,请告诉我。 谢谢
const express = require("express");
const https = require("https");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html");
});
app.post("/", function(req, res) {
const query = req.body.asinId;
const apiKey = "MY_API_KEY";
const url = "https://api.keepa.com/product?key=" + apiKey + "&domain=1&asin=" + query;
const options = {
methode: "GET",
headers: {
"Content-Type": "application/json;charset=UTF-8",
"Accept-Encoding":"gzip"
}
}
https.get(url,options,function(res) {
console.log(res.statusCode);
console.log(res.headers);
var data;
res.on("data", function(chunk){
if(data){
data = chunk;
} else {
data += chunk;
}
console.log(data);
});
});
res.send("server is running");
});
app.listen(3000, function() {
console.log("server is running on port 3000");
});
您是否尝试过将内置 zlib
模块与 gunzip()
一起使用?
zlib.gunzip(data, (error, buff) => {
if (error != null) {
// An error occured while unzipping the .gz file.
} else {
// Use the buff which contains the unzipped JSON.
console.log(buff)
}
});
您的代码的完整示例:https://www.napkin.io/n/7c6bc48d989b4727
好吧,输出函数是错误的..下面是正确的
https.get(url,options,function(response) {
response = decompressResponse(response);
console.log(res.statusCode);
console.log(res.headers);
let data = '';
response.on("data", function(chunk){
data += chunk;
});
response.on("end",function(){
console.log(data);
});
});