![](/img/trans.png)
[英]The same request to external API works in go, postman, curl, but doesn't work in node.js
[英]API request works with postman, but not in Node.js (request)
我正在開發一個與 API 對話的項目,我的腳本在 nodeJS 中(這是一個大項目,所以我會給你一個非常簡化的版本)
基本上,當我使用郵遞員向 API 發出 PUT 請求時,它工作正常,當我使用我的代碼執行此操作時:GET 效果很好(所以我知道 URL 是正確的),但是 PUT 不適用於我的腳本,我的控制台上沒有錯誤,API simple 發回 OK 狀態,所以我不知道哪里出錯了
這是我的腳本的一個非常基本的版本(也不起作用)
(我知道網址是正確的)
PUT參數:
{ method: 'PUT',
baseUrl: 'https://fusionrv.XXXX.XX/fusion/apiservice',
url:
'XXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXX',
qs:
{ auth:
'AUTH_KEY',
value: 1 },
headers: { 'content-type': 'application/json' } }
簡單代碼(沒有導入):
request(putParams, (err, res) => {
if (err) console.log(err);
data = JSON.parse(res.body)
console.log(data)
});
在 Postman 中,我有相同的 baseURL 和 url,以及相同的參數“auth”和“value”,正文設置為“none”,標題為Content-type: application/json
。
響應(在 Postman 和 NodeJS 中):
{
"Status": "Success"
}
那么有誰知道為什么它適用於郵遞員而不適用於請求模塊? 我感謝你們所有人!
原來問題出在API上,我需要執行POST請求並使用其他URL來訪問它,這是一個非常奇怪的API。
添加用戶代理作為標題的一部分
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.