微信小程序 wx.request 的post方式请求方法

wx.request 关于参数的官方文档

data 参数说明
最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:
对于 GET 方法的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)…);
对于 POST 方法且 header[‘content-type’] 为 application/json 的数据,会对数据进行 JSON 序列化;
对于 POST 方法且 header[‘content-type’] 为 application/x-www-form-urlencoded 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)…);

默认是application/json,如果使用method: ‘GET’,会自动将
以上是理论格式,实现代码↓↓:

// post请求的特殊处理
//data的格式为JSON对象,如:data={a:1,b:2}
let url, data, contentType='application/json', method='POST' //参数
if (method.toLocaleUpperCase() == 'POST') {
    data = util.qs(option.data)
    contentType = 'application/x-www-form-urlencoded'
 }
 wx.request({
      url,
      method,
      data,
      header: {
        'content-type': contentType
      },
      success(response) {
        // 接口调用成功
        resolve(response.data)
      },
      fail(error) {
        // 接口调用失败
        reject(error)
      },
      complete(response) {
        // 接口调用结束
      }
    })
// post请求参数格式转换函数
const qs = obj =>  {
  let arr = [];
  for (var o in obj) {
    arr.push(encodeURIComponent(o) + "=" + encodeURIComponent(obj[o]));
  }
  return arr.join("&");
} 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序中,使用`wx.request`进行网络请求时,涉及到数据传输安全,特别是在处理敏感信息时,可能需要采用国密(国家密码算法)进行加密和解密。微信提供了相应的API来支持这些操作,具体步骤如下: 1. **引入加密库**: 首先,在你的小程序项目中,需要安装微信提供的`miniprogram-crypto`库,用于国密相关操作。在`pages/index.js`或相关页面的入口文件中,添加: ```javascript const crypto = require('miniprogram-crypto'); ``` 2. **加密和解密**: 使用`crypto.encrypt`方法对数据进行加密,`crypto.decrypt`方法进行解密。例如,假设你想加密一个字符串: ```javascript const originalData = 'your sensitive data'; const encryptedData = crypto.encrypt(originalData, 'your-encryption-key'); ``` 解密时,用相同的密钥: ```javascript const decryptedData = crypto.decrypt(encryptedData, 'your-encryption-key'); ``` 3. **在`wx.request`中应用加密**: 当发送数据到服务器时,可以在发送前加密,接收后解密。示例代码: ```javascript wx.request({ url: 'your-server-url', data: { encryptedData }, // 注意:这里加密Data而不是明文 method: 'POST', header: { 'Content-Type': 'application/json' // 假设你的服务器需要JSON格式的数据 }, success(res) { const serverResponse = res.data; const decryptedResponse = crypto.decrypt(serverResponse, 'your-encryption-key'); // 解析并处理解密后的数据 } }); ``` 同样,服务器也需要支持接收加密数据,并返回解密后的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值