微信小程序 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()  取消监听收到消息的事件

原文地址:https://www.cnblogs.com/shangjun6/p/10964019.html