小程序中的几种网络请求

小程序有关的网络方面的API只有:普通 HTTPS 请求(wx.request)、上传文件(wx.uploadFile)、下载文件(wx.downloadFile) 和 WebSocket 通信(wx.connectSocket)

  1. wx.request
wx.request({
  url: 'https://www.baidu.com', // 仅为示例,并非真实的接口地址
  method: 'POST',
  data: {        //添加参数  json类型
    parm1: '',
    parm2: ''
  },
  header: {
    'content-type': 'application/json' // 默认值
  },
  success(res) {                       //返回结果
    console.log(res.data)
  },
  fail(err){
  console.log(err)
  },
  complete: function(res) {
            console.log('complete后的res数据:')
          }
})

//如果需要终止请求:
//原示例
const requestTask = wx.request({
})
requestTask.abort() // 取消请求任务
说明
OPTIONSHTTP 请求 OPTIONS
GET \ PUT \ DELETE \POSTHTTP 请求方法

请求method可以根据需要做信息配置。

  1. wx.uploadFile

关于上传文件,比如头像上传:

setImage:function(e){
    var _this = this  
    wx.chooseImage({
      count: 1, 
      sizeType: ['original', 'compressed'], 
      sourceType: ['album', 'camera'], 
      success: function (res) {
        var tempFilePaths = res.tempFilePaths
        console.log(tempFilePaths)
        wx.uploadFile({
          url: “https://www.baidu.com",
          filePath: tempFilePaths[0],
          name: 'uploadFile',
          formData: {
            'userId': XX
          },
          success: function (res) {var data = JSON.parse(res.data)  //与wx.request不同,wx.uploadFile返回的是[字符串],需要自己转为JSON格式
            console.log('上传成功')
            _this.setData({    //wx.uploadFile本身有一个this,所以要通过外部var _this = this 把this带进来
              headerImageUrl: data.headerImageUrl
            })
            console.log('刷新成功')
          }
        })
      }
    })
  },

//同1,如果终止上传,或者查看进度可以
uploadTask.onProgressUpdate((res) => {
  console.log('上传进度', res.progress)
  console.log('已经上传的数据长度', res.totalBytesSent)
  console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)
})

uploadTask.abort() // 取消上传任务
  1. wx.downloadFile
const downloadTask = wx.downloadFile({
  url: 'https://www.baidu.com', // 仅为示例,并非真实的资源
  success(res) {
    // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
    if (res.statusCode === 200) {
     var tempFilePath = res.tempFilePath
        //console.log('临时文件地址是:' + tempFilePath)
        wx.saveFile({
          tempFilePath: tempFilePath,
          success: function(res) {
              var saveFilePath = res.savedFilePath   
          },//可以将saveFilePath写入到页面数据中
          fail: function(res) {},
          complete: function(res) {
            console.log('complete后的res数据:')
          },
    },
     fail: function(res) {
        wx.showModal({
          title: '下载失败',
          content: 'xxx',
        })
      },
      complete: function(res) {},
  }
})


downloadTask.onProgressUpdate((res) => {
  console.log('下载进度', res.progress)
  console.log('已经下载的数据长度', res.totalBytesWritten)
  console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
})

downloadTask.abort() // 取消下载任务
  1. WebSocket
    暂时还没用到,后续再补
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值