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

发布时间:2023年12月31日

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://blog.csdn.net/xy2937131682/article/details/135312731
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。