美文网首页
《微信小程序开发从入门到实战》学习六十八

《微信小程序开发从入门到实战》学习六十八

作者: 阿宅白石 | 来源:发表于2023-12-30 07:10 被阅读0次

    6.6 网络API

    6.6.1 网络API

    使用wx.request接口可以发起网络请求。该接口接受一个Object参,参数支持属性如下所示:

    url(必填):开发者服务器地址

    data:请求的参数,类型为string/object/ArrayBuffer

    header:设置请求的header。header不能设置Referer。

    method:HTTP请求方法,支持OPTIONS/GET(默认值)/HEAD/POST/PUT/DELETE/TRACE/CONNECT

    dataType:返回的数据格式,如设置为json,会对返回数据进行一次JSON.parse解析

    responseType:响应的数据类型,支持text和Arraybuffer

    success

    fail

    complete

    data属性是最终发送给服务器的数据,如果传入的数据不是string类型,会先被转换为string类型,然后再发送。转换规则如下:

    (1).对于GET方法,会将数据转换成query string

    url?encodeURIComponent(key1)=encodeURIComponent(value1)&encodeURIComponent(key2)=encodeURIComponent(value2)...

    (2).对于POST方法,当header['content-type']为application/x-www-form-urlencoded的数据,会将数据转换成query string

      当header['content-type']为application/json的数据,会对数据进行JSON序列化

            调用网络请求API,只要成功接收到服务器返回,就会进入success回调。success回调的Object参数支持三属性,data、statusCode和header。statucCode正常情况下该值为200,header为服务器返回的HTTP报文的头部。

    网络请求API会返回一个RequestTask对象,可以通过该对象,监听服务断返回Header的事件(比请求完成的回调事件更早),或中断网络请求,示例代码如下:

    const requestTask = wx.request({

          url: 'https://somewebsite.com/test', // 仅为示例,并非真实的接口地址

          data: {

            x: '123',

            y: true

          },

          header: {

            'content-type': 'application/json' //默认值

          },

          success(res){

            if (res.statusCode === 200) {

              console.log(res.data)

            }

          }

        })

        //监听HTTP Response Header事件

        requestTask.onHeadersReceived(function(res){

          console.log(res.header) // 服务器返回的 HTTP Response Header,类型为Object

        })

        // 取消监听 HTTP Response Header 事件

        requestTask.offHeadersReceived()

        // 取消请求任务 

        requestTask.abort()

    相关文章

      网友评论

          本文标题:《微信小程序开发从入门到实战》学习六十八

          本文链接:https://www.haomeiwen.com/subject/jkwsndtx.html