• 请求服务器数据API


    一、简介

    用来请求服务器数据发起的是HTTPS请求,同时它需要在微信公众平台配置HTTPS服务器域名,一个月可申请三次修改,否则无法使用wx.request请求服务器数据。WebSocket会话,文件上传下载服务器域名都是如此。

    二、wx.request(object)

    《wx.request(object)参数说明》

    字段是否必填数据类型含义
    urlstring开发者服务器接口地址。
    data请求参数。
    header请求头。不能设置refer。content-type的默认值为“application/json”
    method默认值为GET。有效值为GET、POST、DELETE、PUT、TRACE、CONNECT、OPTIONS。
    dataType默认JSON。如果设置了dataType为.json文件,则会尝试对响应数据组一次JSON.parse;设置其它值,则不对返回的内容进行JSON.parse。
    responseType响应的数据类型。text表示的响应数据为文本,arraybuffer表示响应的数据为ArrayBuffer。
    successfunction调用成功的回调函数
    failfunction调用失败的回调函数
    completefunction调用结束的回调函数(成功、失败都会执行)

    三、HTTP域名的服务器配置

    wx.request无法请求HTTP域名的服务器,访问服务器路径的时候,会到公众开发平台里找他我们配置的HTTP服务器域名,如果域名存在就让访问,否则不让访问。
    服务器域名请在“小程序后台”-“开发”-“开发设置”-"服务器域名"中进行配置。配置时应注意以下几点:

    1. 域名只支持https(wx.request、wx.uploadFile、wx.downloadFile)和wss(wx.connectSocket)协议;
    2. 域名不能使用IP地址(小程序局域网IP除外)或localhost;
    3. 可以配置端口;
    4. 域名必须经过ICP备案;
    5. 出于安全考虑,api.weixin.qq.com不能被配置为服务器域名,相关API也不能在小程序中调用。开发者应将APPSeret保存到后台服务器中,通过服务器使用getAccessToken接口来获取access_token,并调用相关的API;
    6. 对于每个接口分别可以配置最多20个域名。
    Page({
      onLoad:function () {
        wx.request({
          url: 'https://....',
          data:{projectid:"123"},
          method:"GET",
          success:function (res) {},
          fail:function () {},
          complete:function () {},
        })
      }
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    服务器请求默认超过时间和最大超过时间都是60秒,超过时间可以在app.json文件或game.json文件中通过networktimeout配置。
    最终发送给服务器的数据是string类型,如果传入的data不是string类型会被转成string。
    发起wx.request请求时也创建了一个requestTask对象,这个对象提供了以下三种方法:

    1. requestTask.abort(),中断请求任务;
    2. requestTask.onHeadersReceived(functioncallback),表示监听HTTP Response Header事件;
    3. requestTask.offHeadersReceived(function callback),表示取消监听HTTP
      Response Header事件。
    Page({
      onLoad:function () {
       var requestTask = wx.request({
          url: 'https://....',
          data:{projectid:"123"},
          method:"GET",
          success:function (res) {},
          fail:function () {},
          complete:function () {},
        })
        requestTask.onHeadersReceived(function (res) {
          console.log("监听HTTP Response Header事件")
        })
        requestTask.offHeadersReceived(function (res) {
          console.log("取消监听HTTP Response Header事件")
        })
        requestTask.abort();// 中断请求任务
      }
    });
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    hive从入门到放弃(一)——初识hive
    【LeetCode-中等题】210. 课程表 II
    linux服务器上的matplotlib中文字体乱码问题(使用ttf文件)
    Elastic Search6.8.0安装
    Nacos集群配置以及在springboot中使用
    快速入门python机器学习
    DSP-FIR滤波器设计
    Gerrit 使用教程
    pyinstaller 打包exe 防反编译(加密)
    三大运营商乘风破浪,为什么离不开BAT等互联网企业?
  • 原文地址:https://blog.csdn.net/ZMN0057/article/details/134247657