node.js node-fetch - 传递附加到url的查询字符串的问题
Posted
技术标签:
【中文标题】node.js node-fetch - 传递附加到url的查询字符串的问题【英文标题】:node.js node-fetch - problem passing query string appended to url 【发布时间】:2021-12-08 03:50:21 【问题描述】:我正在从 node.js 调用 API。文档指定了一个附加到 url 的查询选项。
API 文档显示如下内容:
curl -L -X POST https://API_URL_GOES_HERE/library?format=txt -H "授权:承载 AUTHCODE_GOES_HERE" -F data_file=@datafile.xxx -F config=" 使用 node-libcurl 我可以在设置调用选项时在 url 中传递查询参数: myurl = "API_URL_GOES_HERE" + "/library?format=txt";
curl.setOpt('URL', myurl); 等等等等 工作得很好...... 但是当我添加节点获取库并尝试时: 获取(我的网址,
方法:'得到',
正文:空,
标题
'授权': '承载 $(authcode)'
.然后...... API 以 json 格式为我提供了适当的响应,但忽略了 ?format=txt 查询参数。
我的理解是(从这里之前的一篇文章中,fetch 完全按照它的呈现方式传递了 url。
有什么建议为什么 node-libcurl 有效而 node-fetch 方法无效? 我应该指出我正在使用 V2.6 的 node-fetch 进行测试,因为我在本地主机上工作并且不能使用 ESM。这在 node-fetch 上可能有点不公平,但我在文档中看不到任何暗示 V3 在这方面可能有所不同的内容。
【问题讨论】:
【参考方案1】:在仔细阅读 V2 更改日志后,我发现该问题已在 9 月修复,并且 node-fetch v2.6.4 包含此修复。
我升级了 node-fetch 库,我的代码运行良好。
【讨论】:
以上是关于node.js node-fetch - 传递附加到url的查询字符串的问题的主要内容,如果未能解决你的问题,请参考以下文章
在异步 AWS Lambda 函数中使用带有 node-fetch 模块的 node.js 时遇到问题
在 node.js 中使用 node-fetch 将数据发送到 Pure Data (Pd) 导致 ETIMEDOUT
node-fetch 从 html 网站获取 id 但我收到错误 200 undefined