1、每一个小程序在与指定域名地址进行网络通信前都必须将该域名地址添加到管理员后台白名单中。
相关知识如下:
1、配置流程
mp.weixin.qq.com进入管理员后台,选择【设置】—【开发设置】—【服务器域名】进行添加或修改需要进行网
络通讯的服务器域名地址
2、 HTTPS证书
需要注意的是,小程序必须使用 HTTPS 请求,普通的HTTP请求是不能用于正式环境的。判断HTTPS请求的依据
是小程序内会对服务器域名使用的 HTTPS 证书进行校验,如果校验失败,则请求不能成功发起。因此开发者
如果选择自己的服务器需要在服务器上自行安装HTTPS证书,选择第三方服务器则需要确保其HTTPS证书有效。
3、跳过域名校验
如果开发者暂时无法登记有效域名,可以在开发和测试环节暂时跳过域名校验。具体做法是在微信web开发者工
具中找到右上角【详情】按钮,单击打开浮窗然后勾选【不校验请求域名、web-view(业务域名)、TLS版本
及HTTPS证书】选项。
2、发起请求
小程序使用wx.request(OBJECT) 发起网络请求,OBJECT参数说明如表所示。
这里以获取和风天气提供的免费API获取天气数据为例:
获取的结果"res"就是哈尔滨的天气数据,可以直接使用。
3、文件传输
1、文件上传
小程序使用wx.uploadFile(OBJECT)可以将本地资源上传到开发者服务器,上传时将从客户端发起一个HTTPS
POST请求到服务器,其中content-type为multipart/form-data。该接口的OBJECT参数说明如表所示。
例子:上传路径为 tempFilepaths[0] 所指向路径的图片到地址为url路径指向的服务器。
2、文件上传对象:
wx.uploadFile(OBJECT)接口返回一个uploadTask对象,通过该对象可监听文件上传进度变化事件,以及取消上传任务。
//定义:
const uploadTask = wx.uploadFile({
//上传代码块
})
//uploadTask即为上传任务对象。
//使用onProgressUpdate函数,获取上传进度。
uploadTask.onProgressUpdate((res) => {
console.log('上传进度', res.progress)
console.log('已经上传的数据长度', res.totalBytesSent)
console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)
})
uploadTask.abort() // 取消上传任务
3、文件下载
小程序使用wx.downloadFile(OBJECT)可以从服务器下载文件资源到本地,OBJECT参数说明如表所示。
例子:
4、下载任务对象-downloadTask(与上传对象类似)
const downloadTask = wx.downloadFile({
//下载代码块
})
downloadTask.onProgressUpdate((res) => {
console.log('下载进度', res.progress)
console.log('已经下载的数据长度', res.totalBytesWritten)
console.log('预期需要下载的数据总长度', res.totalBytesExpectedToWrite)
})
downloadTask.abort() // 取消下载任务