微信小程序 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:类型 object HTTP 请求的 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 param serviceType 为空
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() 取消监听收到消息的事件
微信小程序 API 网络(ajax)的更多相关文章
- 微信小程序api拦截器
微信小程序api拦截器 完美兼容原生小程序项目 完美兼用小程序api的原本调用方式,无痛迁移 小程序api全Promise化 和axios一样的请求方式 小程序api自定义拦截调用参数和返回结果 强大 ...
- 微信小程序 API
微信小程序 API https://developers.weixin.qq.com/miniprogram/dev/component/cover-view.html demo https://de ...
- 微信小程序 API 基础
其实还有一些组件,没有提,因为那些组件跟 API 的功能差不多,API 可能比他会更好一点: 具体可见官方文档 基础: 判断接口是否可用:wx.canIUse(a) a 代表:接口名字 返回值:布尔 ...
- 微信小程序的网络设置,及网络请求:wx.request(OBJECT)
Md2All 一个Markdown在线转换工具 网址:http://md.aclickall.com 微信公众号:颜家大少本文所用排版工具:http://md.aclickall.com 支持通用的M ...
- 微信小程序的网络重试机制
最近在开发微信小程序, 在测试时, 总能碰到一些诸如网络被打断啊之类的问题. 小程序是一款实时互动的小程序, 基于一系列原因, 没有使用Socket, 而是使用的是长链接. 所以对这类问题不能大意啊, ...
- 微信小程序API接口封装
@ 目录 一,让我们看一下项目目录 二,让我们熟悉一下这三个文件目的(文件名你看着办) 三,页面js中如何使用 今天的API的封装,我们拿WX小程序开发中,对它的API (wx.request)对这个 ...
- 微信小程序 API 数据缓存
微信小程序 数据缓存 (类似于 cookie) wx.setStorage() 将数据存储在本地缓存中制定的 key 中.会覆盖掉原来该 key 对应的内容,数据存储生命周期跟小程序本身一致,即除用户 ...
- 微信小程序API交互的自定义封装
目录 1,起因 2,优化成果 3,实现思路 4,完整代码 1,起因 哪天,正在蚂蚁森林疯狂偷能量的我被boss叫过去,告知我司要做一个线上直播公开课功能的微信小程序,博主第一次写小程序,复习了下文档, ...
- 微信小程序API 文档快速参考索引
内容那么多,这个页面到底做了什么? 第一:解决微信文档APi文档使用不便: 第二:解决了内容搜索与索引:—— 最好是写成全文索引文档,但是比较需要时间,而且更新是一件麻烦的事:所以以下是直接 连接官网 ...
随机推荐
- 09.AutoMapper 之自定义类型转换器(Custom Type Converters)
https://www.jianshu.com/p/47054d92db2a 自定义类型转换器(Custom Type Converters) 有时需要完全控制一种类型到另一种类型的转换.这一般发生在 ...
- 阿里云云效平台使用——Windows上使用阿里云云效(RDC)Git拉取代码
转载:https://blog.csdn.net/for_my_life/article/details/88700696 SSH key配置 1.首先从开始菜单里面打开刚刚安装完成的Git目录下Gi ...
- help_topic表,以字符拆分,一行转多行
help_topic表是数据库mysql下的一个表 SUBSTRING_INDEX(s, delimiter, number) 返回从字符串 s 的第 number 个 ...
- openlayers之地图测距侧面
项目背景vue-cli3.0 public下html需要引入文件 <link rel="stylesheet" href="<%= BASE_URL %> ...
- iptables - IP包过滤器管理
总览 iptables -ADC 指定链的规则 [-A 添加 -D 删除 -C 修改] iptables - RI iptables -D chain rule num[option] iptable ...
- logstash操作
1.安装 1>安装java 2> #wget https://artifacts.elastic.co/downloads/logstash/logstash-5.6.3.tar.gz#t ...
- PAT Basic 1033 旧键盘打字 (20 分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...
- dataTable 、dataView、Dataset 区别
dataTable .dataView.Dataset 区别的经典回答 1.DataView是DataTable的表示,DataTable表里的记录是没有顺序的,但显示可以有不同顺序(DataVIew ...
- UIWebView半透明设置
在项目中有时候需要弹出活动弹框,由于原生的样式会固定,所以考虑h5显示,这就需要webView的背景色半透明,如图: 让 UIWebView 背景透明需要以下设置 webView.backgroun ...
- 【HDU1011】Starship Troopers
题目大意:给定一棵 N 个节点的无根树,每个节点有一个重量和一个价值,现给出一些单位,每个单位可以接受 20 个重量单位,求如何分配这些单位,使得获得的价值最大. 题解:dp 好题qwq..真的毒瘤. ...