使用wx.request发送multipart/form-data请求的方法

 

问题描述:在小程序中,使用post请求提交form-data数据时,参数总会提示错误,而使用postman测试接口正常。

原因分析:尽管我们在wx.request中指定了'content-type'为'multipart/form-data',但是wx.request并不会为我们自动添加boundary,这时需要我们自己添加。

解决办法

var paraname="postData";
var value="mydata";
wx.request({
      url: 'http://www.test.com/post',
//接口地址
      method: 'POST',
      header: {
        'content-type': 'multipart/form-data; boundary=XXX'
      },
      data: '\r\n--XXX' +
        '\r\nContent-Disposition: form-data; name="'+ paraname +'"' +
        '\r\n' +
        '\r\n' + value +
        '\r\n--XXX'
    })

如果是多个参数,可以将value作为对象传递,也可以多个参数拼接。

var paraname1="postData1";
var value1="mydata1";
var paraname2="postData2";
var value2="mydata2";
wx.request({
      url: 'http://www.test.com/post',
//接口地址
      method: 'POST',
      header: {
        'content-type': 'multipart/form-data; boundary=XXX'
      },
      data: '\r\n--XXX' +
        '\r\nContent-Disposition: form-data; name="'+ paraname1 +'"' +
        '\r\n' +
        '\r\n' + value1 +
        '\r\n--XXX'
        '\r\nContent-Disposition: form-data; name="'+ paraname2 +'"' +
        '\r\n' +
        '\r\n' + value2 +
        '\r\n--XXX'
    })

参考资料:https://developers.weixin.qq.com/community/develop/article/doc/0000cc0e5bc5d093c6f8be17254c13

—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花