提问人:Azima 提问时间:11/11/2020 更新时间:11/19/2022 访问量:19829
node-fetch 将帖子正文作为表单数据发送
node-fetch send post body as form-data
问:
我正在尝试使用 body 发送 POST 请求,因为这似乎是唯一有效的方法。form-data
我也在 Postman 中尝试过这个,但发送方式不起作用。body
raw JSON
所以我尝试做同样的事情,但似乎正在发送,并且我收到与以前相同的错误(从 Postman 使用时)。node-fetch
body
JSON
raw
try{
const { streamId } = request.body;
const headers = {
"Authorization": INO_AUTHORIZATION_CODE,
// "Content-Type": "multipart/form-data; boundary=<calculated when request is sent>"
"Content-Type": "application/json"
}
const url = `https://www.inoreader.com/reader/api/0/stream/contents/${streamId}`;
const body = {
AppId: INO_APP_ID,
AppKey: INO_APP_KEY
}
const resp = await fetch(url, {
method: 'POST',
body: JSON.stringify(body),
// body: body,
headers: headers
});
const json = await resp.text();
return response.send(json);
} catch(error) {
next(error);
}
仅将正文设置为作品:form-data
答:
9赞
salman
11/11/2020
#1
您需要使用他们的文档中提到的 form-data 包,以便您的代码
const FormData = require('form-data');
const form = new FormData();
form.append('AppId', INO_APP_ID);
form.append('AppKey', INO_APP_KEY);
const resp = await fetch(url, {
method: 'POST',
body: form
});
评论
0赞
josue.0
7/2/2022
本文档来自 node-fetch 版本 2
0赞
MadaShindeInai
11/16/2022
是的,它仍然适用于无法迁移 ESM 的每个人。但是使用此解决方案,我遇到了套接字挂断错误
3赞
fede coraglio
11/19/2022
#2
乌萨尔:
const form = new URLSearchParams();
form.append('AppId', INO_APP_ID);
form.append('AppKey', INO_APP_KEY);
评论
0赞
Zain Ul Abidin
11/19/2022
一个好的答案总是包括一些解释,以详细说明它如何解决所提出的问题。
0赞
Temuujin Dev
11/26/2022
为什么使用 URLSearchParams 创建表单数据?正如 here(developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) 所说,URLSearchParams 定义了使用 URL 的查询字符串的实用程序方法。它用于使用搜索参数,而不是表单数据。请考虑您的答案。
1赞
LuisAFK
12/31/2022
@TemuujinDev它在他们的文档(另一个答案中的链接)中说要使用,但它从未说过使用该包,因此对于有此问题的其他人来说,这应该是标记为正确的答案URLSearchParams
form-data
评论