1

我想发出以下 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

它使用 Medium API 上传图片,我想获取远程图片,并将其转换为 multipart/form-data 并通过 API 上传,HTTP 请求看起来很混乱,我想要等效的 axios 代码,有人请帮忙吗?

4

1 回答 1

1

尝试使用 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 从表单发布文件

于 2020-06-08T11:35:38.163 回答