如何解决cURL 到带有 multipart/form-data 的 NodeJS 请求
我需要像这样的 cURL 发出请求:
curl -u [staff_email]:[api_key] -F "case[attachments][0]=@/path/to/file1.ext" -F "case[content]=I need help" -F "case[subject]=I need help" -F "case[user_email]=user@domain.ru" -F "case[user_full_name]=FullName" -F "case[language_id]=1" -X POST https://[domain].omnidesk.ru/api/cases.json
我尝试了很多次!请帮忙!
最新版本的代码(res:string[]/csv):
const auth = 'Basic ' + Buffer
.from('user:password')
.toString('base64');
const query = {
'case[subject]': "subject",'case[content]': 'text','case[user_email]': 'someemail@gmail.com','case[user_full_name]': 'some_name','case[group_id]': 18278,'case[language_id]': 1,'case[attachments][0]': Buffer.from(res.join("\r\n"),'utf8'),};
const cb = (e,r,b) => {
console.log(e,b);
};
const options = {
method: 'post',url: 'https://domain.omnidesk.ru/api/cases.json',headers: {
"Authorization": auth,"Content-Type": "multipart/form-data"
},form: query,};
request(options,cb);
解决方法
工作代码如下:
const query = {
'case[subject]': "subject",'case[content]': 'content','case[user_email]': 'tt@tt.tt','case[user_full_name]': 'some name','case[language_id]': 1
};
const cb = (e,r,b) => {
console.log(e,b);
};
const options = {
method: 'POST',url: 'https://domain.omnidesk.ru/api/cases.json',auth: {
user: 'login',pass: 'password'
},qs: query
};
const req = request(options,cb);
const form = req.form();
form.append('case[attachments][0]',res.join("\r\n"),{ filename: 'some_file.csv' });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。