节点获取发送 post 正文作为表单数据
node-fetch send post body as form-data
我正在尝试发送正文为 form-data
的 POST 请求,因为这似乎是唯一可行的方法。
我也在 Postman 中尝试过,但发送 body
作为 raw JSON
没有用。
所以我尝试对 node-fetch
做同样的事情,但似乎 body
被发送为 JSON
并且我遇到了与以前相同的错误(使用 [=18 时=] 来自邮递员)。
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);
}
只有将 body 设置为 form-data
才有效:
您需要使用 their doc 中提到的 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
});
我正在尝试发送正文为 form-data
的 POST 请求,因为这似乎是唯一可行的方法。
我也在 Postman 中尝试过,但发送 body
作为 raw JSON
没有用。
所以我尝试对 node-fetch
做同样的事情,但似乎 body
被发送为 JSON
并且我遇到了与以前相同的错误(使用 [=18 时=] 来自邮递员)。
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);
}
只有将 body 设置为 form-data
才有效:
您需要使用 their doc 中提到的 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
});