以下 curl 请求工作正常:
curl --form "fileupload=@company1.csv;type=text/csv" -H 'Authorization: Bearer <access token>' https://api.linkedin.com/media/upload?media_type=ad_segments
当我从 axios 发出相同的请求时,我收到此错误:
{
serviceErrorCode: 0,
message: 'Content-Type header is null',
status: 400
}
邮递员电话也收到同样的错误。我正在粘贴发出 axios 请求的 NodeJS 代码:
const axios = require('axios');
const FormData = require('form-data');
const form = new FormData();
const networkCall = async function() {
form.append('fileupload', '@users_2.csv;type=text/csv');
const opt = {
headers: {
...form.getHeaders(),
'Authorization': 'Bearer <access token>'
}
};
setTimeout(async function() {
const resp = await axios.post('https://api.linkedin.com/media/upload?media_type=ad_segments', form, opt);
}, 2000);
}
networkCall();
打印 form.getHeader() 给出以下输出:
{
'content-type': 'multipart/form-data; boundary=--------------------------609273787015212598361319'
}
很明显 content-type
已设置。但为什么我得到 Content-Type header is null
?
curl 正在设置其他标题,如 content-length
。这里有问题吗?邮递员正在设置所有标题卷曲也正在设置。但是反应还是不一样。
或者LinkedIn处理请求的方式有问题?这是文档的链接:LinkedIn doc