小程序有关的网络方面的API只有:普通 HTTPS 请求(wx.request)、上传文件(wx.uploadFile)、下载文件(wx.downloadFile) 和 WebSocket 通信(wx.connectSocket)
- 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() // 取消请求任务
值 | 说明 |
---|---|
OPTIONS | HTTP 请求 OPTIONS |
GET \ PUT \ DELETE \POST | HTTP 请求方法 |
请求method可以根据需要做信息配置。
- 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() // 取消上传任务
- 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() // 取消下载任务
- WebSocket
暂时还没用到,后续再补