我已经使用Postman探索了三星SmartThings的API。我的工作和预期的一样。但是当我获取这些信息并尝试在Axios的节点中实现它时,返回的数据看起来像是压缩的或其他一些blob。下面是我尝试使用的代码来获得响应:
const axios = require("axios");
function main() {
const st_api = axios.create();
st_api
.get("https://api.smartthings.com/v1/locations/", {
headers: {
get: {
Accept: "application/vnd.smartthings+json",
},
Authorization: process.env.my_home_token,
},
responseType: "json",
responseEncoding: "utf8",
decompress: true,
})
.then(function (res) {
console.log("Status: ", res.status);
console.log("Data: ", res.data);
})
.catch(function (err) {
console.log("Error: ", err);
});
}
main();
返回的控制台日志为:
Status: 200
Data: �$ͱ�0��W1wn��-H�����d���6KK��»[�v�/���������BC���BXn���%�ek3��j��&�� m�x�M��i�i1 ��פ��8�`�����4�r_����d�ޤ�A�Z��K�K��UV�rk²�<\�_㿻���wA��
我尝试过插入gzip来解压缩它或其他头信息,但没有任何变化。我期待一些json返回(或至少一些人类可读的东西将是一个开始)。我相信我提取了我的简单(我希望)API调用到一个简短的测试,我尝试没有改变返回的数据。
1条答案
按热度按时间xwbd5t1u1#
这是Axios中的一个错误。请将Axios版本降级到1.1.3或更低版本,并且在1.3.0发布之前不要升级。参考:https://github.com/axios/axios/pull/5300,https://github.com/axios/axios/pull/5306