微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cURL 到带有 multipart/form-data 的 NodeJS 请求

如何解决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 举报,一经查实,本站将立刻删除。