[英]What must I do to use Axios in node js to access an API endpoint?
我已經使用 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 來解壓縮它或其他 header 信息,但沒有任何變化。 我期待一些 json 返回(或者至少是人類可讀的東西)。 我相信我將我的簡單(我希望)api 調用提煉成一個簡短的測試,我嘗試的任何事情都沒有改變返回的數據。
這是 Axios 中的一個錯誤。將您的 Axios 版本降級到 1.1.3 或更低版本,並且在 1.3.0 發布之前不要升級。 參考: https://github.com/axios/axios/pull/5300,https ://github.com/axios/axios/pull/5306
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.