Axios 相当于 HTTP 请求?



我想发出以下http请求

POST /v1/images HTTP/1.1
Host: api.medium.com
Authorization: Bearer 181d415f34379af07b2c11d144dfbe35d
Content-Type: multipart/form-data; boundary=FormBoundaryXYZ
Accept: application/json
Accept-Charset: utf-8
--FormBoundaryXYZ
Content-Disposition: form-data; name="image"; filename="filename.png"
Content-Type: image/png
IMAGE_DATA
--FormBoundaryXYZ--

它是中等 API

我尝试了以下操作。

var axios = require("axios")
var data = (await axios("https://example.com/image.png")).data;
axios.post("https://api.medium.com/v1/images",{image: data},{
headers: {
"Content-Type" : "multipart/form-data",
"Authorization" : "Bearer " + process.env.key
}
}).then(x=>console.log(x.data))

我得到以下错误。

Error: Request failed with status code 400

它使用中型 API 上传图像,我想获取远程图像,并将其转换为多部分/表单数据并通过 API 上传,HTTP 请求似乎令人困惑,我想要等效的 axios 代码,有人请帮忙吗?

尝试使用 FormData 而不是普通对象?

示例应该是这样的

const formData = new FormData();
formData.append('image', data);
axios.post('https://api.medium.com/v1/images', formData, {
headers: {
"Content-Type" : "multipart/form-data",
"Authorization" : "Bearer " + process.env.key
}
});

参考:如何使用 Axios 从表单发布文件

最新更新