wx.request
RequestTask wx.request(Object object)
以 Promise 风格 调用:不支持
小程序插件:支持,需要小程序基础库版本不低于 1.9.6
微信 Windows 版:支持
微信 Mac 版:支持
微信 鸿蒙 OS 版:支持
相关文档: 网络使用说明、局域网通信、移动解析HttpDNS
功能描述
发起 HTTPS 网络请求。使用前请注意阅读相关说明。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 | |
---|---|---|---|---|---|---|
url | string | 是 | 开发者服务器接口地址 | |||
data | string/object/ArrayBuffer | 否 | 请求的参数 | |||
header | Object | 否 | 设置请求的 header,header 中不能设置 Referer。 content-type 默认为 application/json |
|||
timeout | number | 否 | 超时时间,单位为毫秒。默认值为 60000 | 2.10.0 | ||
method | string | GET | 否 | HTTP 请求方法 | ||
合法值说明OPTIONSHTTP 请求 OPTIONSGETHTTP 请求 GETHEADHTTP 请求 HEADPOSTHTTP 请求 POSTPUTHTTP 请求 PUTDELETEHTTP 请求 DELETETRACEHTTP 请求 TRACECONNECTHTTP 请求 CONNECT | ||||||
dataType | string | json | 否 | 返回的数据格式 | ||
合法值说明json返回的数据为 JSON,返回后会对返回的数据进行一次 JSON.parse其他不对返回的内容进行 JSON.parse | ||||||
responseType | string | text | 否 | 响应的数据类型 | 1.7.0 | |
合法值说明text响应的数据为文本arraybuffer响应的数据为 ArrayBuffer | ||||||
useHighPerformanceMode | boolean | false | 否 | 使用高性能模式,暂仅支持 Android,默认关闭。该模式下有更优的网络性能表现,更多信息请查看下方说明。 | 3.3.3 | |
enableHttp2 | boolean | false | 否 | 开启 http2 | 2.10.4 | |
enableProfile | boolean | true | 否 | 是否开启 profile,默认开启。开启后可在接口回调的 res.profile 中查看性能调试信息。 | ||
enableQuic | boolean | false | 否 | 开启 Quic 协议(gQUIC Q43) | 2.10.4 | |
enableCache | boolean | false | 否 | 开启 Http 缓存 | 2.10.4 | |
enableHttpDNS | boolean | false | 否 | 是否开启 HttpDNS 服务。如开启,需要同时填入 httpDNSServiceId 。 HttpDNS 用法详见 移动解析HttpDNS | 2.19.1 | |
httpDNSServiceId | string | 否 | HttpDNS 服务商 Id。 HttpDNS 用法详见 移动解析HttpDNS | 2.19.1 | ||
enableChunked | boolean | false | 否 | 开启 transfer-encoding chunked。 | 2.20.2 | |
forceCellularNetwork | boolean | false | 否 | 强制使用蜂窝网络发送请求 | 2.21.0 | |
redirect | string | follow | 否 | 重定向拦截策略。(目前安卓、iOS、开发者工具已支持,PC端将在后续支持) | 3.2.2 | |
合法值说明follow不拦截重定向,即客户端自动处理重定向manual拦截重定向。开启后,当 http 状态码为 3xx 时客户端不再自动重定向,而是触发 onHeadersReceived 回调,并结束本次 request 请求。可通过 onHeadersReceived 回调中的 header.Location 获取重定向的 url | ||||||
success | function | 否 | 接口调用成功的回调函数 | |||
fail | function | 否 | 接口调用失败的回调函数 | |||
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
object.success 回调函数
参数
Object res
属性 | 类型 | 说明 | 最低版本 | |
---|---|---|---|---|
data | string/Object/Arraybuffer | 开发者服务器返回的数据 | ||
statusCode | number | 开发者服务器返回的 HTTP 状态码 | ||
header | Object | 开发者服务器返回的 HTTP Response Header | 1.2.0 | |
cookies | Array. |
开发者服务器返回的 cookies,格式为字符串数组 | 2.10.0 | |
profile | Object | 网络请求过程中一些调试信息,查看详细说明 | 2.10.4 | |
结构属性类型说明redirectStartnumber第一个 HTTP 重定向发生时的时间。有跳转且是同域名内的重定向才算,否则值为 0redirectEndnumber最后一个 HTTP 重定向完成时的时间。有跳转且是同域名内部的重定向才算,否则值为 0fetchStartnumber组件准备好使用 HTTP 请求抓取资源的时间,这发生在检查本地缓存之前domainLookUpStartnumberDNS 域名查询开始的时间,如果使用了本地缓存(即无 DNS 查询)或持久连接,则与 fetchStart 值相等domainLookUpEndnumberDNS 域名查询完成的时间,如果使用了本地缓存(即无 DNS 查询)或持久连接,则与 fetchStart 值相等connectStartnumberHTTP(TCP) 开始建立连接的时间,如果是持久连接,则与 fetchStart 值相等。注意如果在传输层发生了错误且重新建立连接,则这里显示的是新建立的连接开始的时间connectEndnumberHTTP(TCP) 完成建立连接的时间(完成握手),如果是持久连接,则与 fetchStart 值相等。注意如果在传输层发生了错误且重新建立连接,则这里显示的是新建立的连接完成的时间。注意这里握手结束,包括安全连接建立完成、SOCKS 授权通过SSLconnectionStartnumberSSL建立连接的时间,如果不是安全连接,则值为 0SSLconnectionEndnumberSSL建立完成的时间,如果不是安全连接,则值为 0requestStartnumberHTTP请求读取真实文档开始的时间(完成建立连接),包括从本地读取缓存。连接错误重连时,这里显示的也是新建立连接的时间requestEndnumberHTTP请求读取真实文档结束的时间responseStartnumberHTTP 开始接收响应的时间(获取到第一个字节),包括从本地读取缓存responseEndnumberHTTP 响应全部接收完成的时间(获取到最后一个字节),包括从本地读取缓存rttnumber当次请求连接过程中实时 rttestimate_nettypenumber评估的网络状态 unknown, offline, slow 2g, 2g, 3g, 4g, last/0, 1, 2, 3, 4, 5, 6httpRttEstimatenumber协议层根据多个请求评估当前网络的 rtt(仅供参考)transportRttEstimatenumber传输层根据多个请求评估的当前网络的 rtt(仅供参考)downstreamThroughputKbpsEstimatenumber评估当前网络下载的kbpsthroughputKbpsnumber当前网络的实际下载kbpspeerIPstring当前请求的IPportnumber当前请求的端口socketReusedboolean是否复用连接sendBytesCountnumber发送的字节数receivedBytedCountnumber收到字节数protocolstring使用协议类型,有效值:http1.1, h2, quic, unknownusingHighPerformanceModeboolean是否走到了高性能模式。基础库 v3.3.4 起支持。 | ||||
exception | Object | 网络请求过程中的一些异常信息,例如httpdns重试等 | 3.0.0 | |
结构属性类型说明retryCountnumber本次请求底层重试次数reasonsArray. | ||||
useHttpDNS | boolean | 最终请求是否使用了HttpDNS(仅当enableHttpDNS传true时返回此字段) | 3.4.10 |
object.fail 回调函数
参数
Object err
返回值
RequestTask
基础库 1.4.0 开始支持,低版本需做兼容处理。
请求任务对象
data 参数说明
最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:
- 对于
GET
方法的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...
) - 对于
POST
方法且header['content-type']
为application/json
的数据,会对数据进行 JSON 序列化 - 对于
POST
方法且header['content-type']
为application/x-www-form-urlencoded
的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)
useHighPerformanceMode 高性能模式说明
在该模式下,框架将会采用全新的网络请求模块,默认支持 HTTP3,可以提升小程序的网络请求性能。有以下注意事项:
- 除声明了
enableChunked
后会走 HTTP1 以外,均会自动开启 HTTP2/HTTP3 等优化能力,enableQuic
、enableHttp2
参数将会强制开启。建议开发者在后台服务也开启对应能力以获得更好的效果。 - 暂仅支持 Android,iOS/PC 端设置该参数后会使用原 request 模块。iOS 会在后续支持该参数。
- 暂不支持 forceCellularNetwork 参数。
- 暂不支持 HttpDNS 能力。
- 开启
enableProfile
后,返回的 profile 字段部分信息缺失,会被缺省值代替。缺失部分包括 redirectStart、redirectEnd、rtt、estimate_nettype、httpRttEstimate、transportRttEstimate、downstreamThroughputKbpsEstimate、throughputKbps、peerIP、port。
示例代码
wx.request({
url: 'example.php', //仅为示例,并非真实的接口地址
data: {
x: '',
y: ''
},
header: {
'content-type': 'application/json' // 默认值
},
success (res) {
console.log(res.data)
}
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)