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

如何将 *any* cURL 或 node-fetch 请求转换为 Axios 请求?

react服务端渲染路由改写

有没有办法记录节点获取请求?