
正文
微信小程序 API 网络(ajax)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
网络 API 类似于 ajax 向服务器请求网络地址,唯一不同的是这个请求有很多的规则,且必须向服务器上请求,不能在本地请求
网络
发送请求:
wx.request()发起https网络请求参数:对象
对象的属性:
url:类型字符串开发者服务器的接口地址(且拥有诸多的限制,必须是https的网络请求)
如图:

如果我们没有合法的域名,也能进行测试:
我们需要对调试基础库的选项进行打勾就好了
data:类型字符串/对象/数组/缓存请求的参数
header:类型对象请求设置的 header (得到数据的返回值,默认是 json 格式,我们都知道在服务器请求到的数据都是字符串)
method:类型字符串请求的方式:
属性值:options / get / head / post / put / delete / tract / connect这是请求的方式
dataType:类型字符串返回的数据格式
属性值:json会对返回的数据为 json,如果不是,会对返回的数据进行一次 JSON.parse()
其他不对返回的内容进行JSON.parse()
responseType:类型字符串响应的数据类型
属性值:text响应的数据为 文本
arraybuffer响应的数据为 ArrayBuffer
success:类型函数接口返回成功的回调函数对象对象上拥有3个属性
属性值:
data:类型字符串/对象/数组/缓存开发者服务器返回的数据
statusCode:类型数字开发者服务器返回的 http 码
header:类型对象开发者服务器返回的 HTTP Response Header
RequestTask网络请求的任务对象(拥有属性和方法)
RequestTask.abort()中断请求的任务直接执行
RequestTask.onHeadersReceived()监听 HTTP Response Header 事件,会比请求完成事件更早参数:回调函数(事件对象的 header 属性)返回值:开发者服务器返回 HTTP Response Header
RequestTask.offHeadersReceived()取消监听 HTTP Response Header 事件参数:回调函数
下载:
wx.downloadFile()下载文件资源到本地,客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径,单次下载允许的最大文件为 50 MB 参数:对象
注意:请在服务端响应的 header 中指定合理的 Content-Type 字段,以保证客户端正确处理文件类型
对象的属性:
url:类型字符串下载资源的url
header:类型objectHTTP 请求的 Header,Header 中不能设置 Referer
filePath:类型字符串指定文件下载后的储存路径
success:类型函数接口调用成功后的回调函数
事件对象上的属性:
tempFilePath:类型字符串临时文件的路径,没传入 filePath 指定文件储存路径时会返回,下载后的文件储存到一个临时文件
filePath:类型字符串用户文件路径,传入 filePath 时会返回,跟传入的 filePath 一致
statusCode:类型数字开发者服务器返回的 HTTP 状态码
DownloadTask:一个可以监听下载进度变化事件,以及取消下载任务的对象 (拥有属性和方法)
Download.abort()中断下载任务
DownloadTask.onProgressUpdate()监听下载进度变化事件参数:回调函数
事件对象的属性:
progress:下载进度百分比
res.totalBytesWritten:已经下载的数据长度
res.totalBytesExpectedToWrite:预期需要下载的数据总长度
DownloadTask.offProquressUpdate()取消监听下载进度变化事件直接使用
DownloadTask.onHeadersReceived()监听 HTTP Response Header 事件,会比请求完成事件更早参数:回调函数
DownloadTask.offHeadersReceived()取消监听 HTTP Response Header 事件
上传:
wx.uploadFile()将本地资源上传到服务器,客户端发起一个 HTTPS POST 请求,其中 content-type 为 multipart/form-data。参数:对象
对象的属性:
url:类型字符串开发者服务器地址
filePath:类型字符串要上传的文件资源路径
name:类型字符串文件对应的 key ,开发者可以通过 key 获取文件的二进制内容
header:类型对象HTTP 请求 Header,Header 中不能设置 Referer
formData:类型对象HTTP 请求中其他额外的 form data
success:类型函数接口调用成功的回调函数
事件对对象上的属性
data:类型字符串开发者服务器返回的数据
statusCode:类型数字开发者服务器返回的 HTTP 状态码
uploadTask:一个可以监听上传进度变化事件,以及取消上传任务的对象(拥有属性和方法)
uploadTask.abort():中断上传任务
UploadTask.onProgressUpdate():监听上传进度变化事件
事件对象的属性
progress:上传进度百分比
totalBytesSent:已经上传的数据长度
totalBytesExpectedToSend:预期需要上传的数据总长度
UploadTask.offProgressUpdate():取消监听上传进度变化事件
UploadTask.onHeadersReceived():监听 HTTP Response Header 事件,会比请求完成事件更早
UploadTask.offHeadersReceived():取消监听 HTTP Response Header 事件
WebSocket
wx.sendSocketMessage():通过 WebSocket 连接发送数据,需要线 wx.connectSocker,并在 wx.onSocketOpen 回调之后才能发送 参数:对象
对象的属性:
data:类型字符串/数组/缓存需要发送的内容
wx.onSocketOpen():监听 WebSocket 连接打开事件参数:回调函数
事件对象的属性:
header:类型对象连接成功的 HTTP 响应 Header
wx.onSocketMessage():监听 WebSocket 接受到服务器的消息事件参数:回调函数
事件对象:
data:类型对象/数组/缓冲服务器返回的消息
wx.onSocketError():监听 WebSocket 错误事件
wx.connectSocket():创建一个 WebSocket 连接参数:对象
对象的属性:
url:类型字符串(必填)开发者服务器 wss 接口地址
header:类型对象HTTP 请求 Header(注意:这个 Header 中不能设置 Referer)
protocols:类型数组子协议数组
tcpNoDelay:类型布尔建立 TCP 连接的时候 TCP_NODELAY 设置
wx.closeSocket():关闭 WebSocket 连接参数:对象
对象的属性:
code:类型数字一个数字表示关闭连接的状态号,表示被关闭的原因
reason:类型字符串一个可读的字符串,表示被关闭的原因
SocketTask:WebSocket 任务,可通过 wx.connectSocket() 接口创建返回的对象(拥有属性和方法)
SocketTask.send():通过 WebSocket 连接发送数据
SocketTask.close():关闭 WebSocket 连接
SocketTask.onOpen():监听 WebSocket 连接打开事件
SocketTask.onClose():监听 WebSocket 连接关闭事件
SocketTask.onError():监听 WebSocket 错误事件
SocketTask.onMessage():监听 WebSocket 接受到服务器的消息事件
mDNS
wx.stopLocalServiceDiscovery()停止搜索 mDNS 服务参数:对象
对象的属性:
success:类型成功参数:回调函数
事件对象上的属性:
errMsg:类型字符串
属性值:task not found在当前没有处在搜索服务中调用 stopLocalServiceDiscovery
wx.startLocalServiceDiscovery()开始搜索局域网下的 mDNS 服务,搜索的结果会通过 wx.onLocalService 事件返回参数:对象
对象的属性:
serviceType:类型字符串要搜索的服务类型
success:事件对象的属性:
errMsg:类型字符串错误信息
属性值:invalid paramserviceType 为空
scan task already exist当前 startLocalServiceDiscovery() 发起搜索未停止的情况下,在次调用 startLocalServiceDiscovery()
wx.onLocalServiceResolveFail()监听 mDNS 服务解析失败事件参数:回调函数
事件对象上的属性:serviceType:类型字符串服务的类型
serviceName:类型字符串服务的名字
wx.onLocalServiceLost()监听 mDNS 服务离开事件参数:回调函数
事件对象上的属性:serviceType:类型字符串服务的类型
serviceName:类型字符串服务的名字
wx.onLocalServiceFound()监听 mDNS 服务发现的事件参数:回调函数
事件对象上的属性:serviceType:类型字符串服务的类型
serviceName:类型字符串服务的名字
ip:类型字符串服务器的 ip 地址
port:类型数字服务器的端口
wx.onLocalServiceDiscoveryStop()监听 mDNS 服务停止搜索的事件参数:回调函数
wx.offLocalServiceResolveFail()取消监听 mDNS 服务解析失败的事件参数:回调函数
wx.offLocalServiceLost()取消监听 mDNS 服务离开的事件参数:回调函数
wx.offLocalServiceFound()取消监听 mDNS 服务发现的事件参数:回调函数
wx.offLocalServiceDiscoveryStop()取消监听 mDNS 服务停止搜索的事件参数:回调函数
UDP通信
wx.createUDPSocket()创建一个 UDP Socket 实例返回值:一个UDP Socket 的实例对象
UDPSocket一个 UDP Socket 的 实例,默认使用 IPv4 协议
实例的方法:
UDPSocker.bind()绑定一个系统随机分配的可用端口
UDPSocket.send()向指定的 IP 和 port 发送消息
UDPSocket.close()关闭UDP Socket 实例,相当于销毁。在关闭之后,UDP Socket 实例不能在发送消息,每次调用 UDP Socket.send 将会触发错误事件,并且 message 事件回调函数也不会在执行。在UDP Socket 实例被创建后将被 Native 强引用,保证其不被GC。在UDPSocket.close 后将被解除对其的强引用,让 UDPSocket 实例遵从 GC。
UDPSocket.onClose()监听关闭事件参数:回调函数
UDPSocket.offClose()取消监听关闭事件参数:回调函数
UDPSocket.onError()监听错误事件
UDPSocket.offError()取消监听错误事件
UDPSocket.onListening()监听开始监听数据包消息的事件
UDPSocket.offListening()取消监听开始监听数据包消息的事件
UDPSocket.onMessage()监听收到消息的事件
UDPSocket.offMessage()取消监听收到消息的事件





