我正在从node.js调用一个API。文档指定了附加到url的查询选项。
API文档显示了类似以下内容:
curl -L -X POST https://API_URL_GOES_HERE/library?format=txt -H "Authorization: Bearer AUTHCODE_GOES_HERE“-F data_file=@datafile.xxx -F config="
使用node-libcurl,我可以在设置调用选项时在url中传递query参数:
myurl = "API_URL_GOES_HERE“+ "/library?format=txt";curl.setOpt('URL',myurl);
等等,等等
效果很好...
但是当我添加node-fetch库并尝试:
fetch(myurl,{ method:'get',body: null,headers { 'Authorization':'Bearer $(authcode)‘}} .then……
该应用编程接口以json格式给出了适当的响应,但忽略了?format=txt查询参数。我的理解是(从这里的早期帖子中,fetch完全按照它的形式传递url。为什么node-libcurl有效,而node-fetch方法不行?
我应该指出的是,我正在使用node-fetch版本2.6进行测试,因为我在本地主机上工作,不能使用ESM。这在节点获取方面可能有点不公平,但我在文档中看不到任何东西表明V3在这方面可能有所不同。
发布于 2021-10-21 10:58:46
在仔细阅读V2更改日志后,我发现这个问题已经在9月份得到了修复,node-FetchV2.6.4包含了这个修复。
我升级了node-fetch库,我的代码运行得很好。
https://stackoverflow.com/questions/69660983
复制相似问题