我是新手谁是学习玩API。我得到POST请求错误,而使用axios。
在我想交互的API文档中,他们给予了curl的例子。
curl -X POST https://ssuploader.streamsb.com/upload/01
-d "api_key=948324jkl3h45h"
-d "@path/filename.mp4"
-H "Content-Type: application/x-www-form-urlencoded"
我正在尝试使用axios发出POST请求。我写了这样的简单脚本。
const axiosConfig = {
headers : {
"Content-Type": "application/x-www-form-urlencoded"
}
}
const file = __dirname + "/video/Video.mp4";
const fileData = fs.readFileSync(file);
const data = `api_key=${API_KEY}&${fileData}`;
axios.post('https://ssuploader.streamsb.com/upload/01', data, axiosConfig).then((result) => {
console.log(result.data);
}).catch((err) => {
console.log("Getting Error : ", err);
});
我收到此错误。
Getting Error : AxiosError: getaddrinfo ENOTFOUND ssuploader.streamsb.com
我是一个真正的新手,所以我认为我的一些结构是错误的,当转换curl到axios。我真的不知道该怎么做。我的意思是我不能弄清楚我的false。有人能帮助我吗?非常感谢。
部分变更
我在答案的帮助下找出了一些错误。我忘记了先获取服务器。所以我更新了我的代码。
const file = __dirname + "/video/Video.mp4";
const fileData = fs.createReadStream(file);
const formData = new FormData();
formData.append('file', fileData);
formData.append('api_key', API_KEY);
console.log(formData)
axios.get(`https://api.streamsb.com/api/upload/server?key=${API_KEY}`).then(result => {
const url = result.data.result;
axios.post(url, formData, axiosConfig)
.then((result) => {
console.log(result.data);
}).catch((err) => {
console.log("Getting Error : ", err);
});
})
但我得到了新的错误。
AxiosError: Request failed with status code 400
3条答案
按热度按时间bvpmtnay1#
正如我从文档中了解到的,这是2个步骤的过程。首先你需要获得上传URL(他们称之为服务器),然后用它来上传你的文件。
因此,请使用以下代码:
owfi6suc2#
您正在将fileData作为data对象中的字符串发送
1.使用
'Content-Type': 'multipart/form-data'
而不是"Content-Type": "application/x-www-form-urlencoded"
1.代码将是这样的
如果你有任何疑问,你可以问
nwlqm0z13#
是他们,不是你。
ssuploader.streamsb.com
没有DNS记录(您可以将其输入到https://mxtoolbox.com/DNSLookup.aspx中进行检查),这意味着当您尝试连接到它时,它将一无所获。除非你做一些挖掘,并找到一个域,从他们有DNS记录,有没有什么你可以做的。