发起 HTTPS 网络请求。使用前请注意阅读相关说明。
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
url | String | 是 | 开发者服务器接口地址 | |
data | String/object/ArrayBuffer | 否 | 请求的参数 | |
header | Object | 否 | 设置请求的 header,header 中不能设置 Referer。 content-type 默认为 application/json | |
timeout | Number | 否 | 超时时间,单位为毫秒。默认值为 60000 | |
method | String | GET | 否 | HTTP 请求方法 |
dataType | String | json | 否 | 返回的数据格式 |
responseType | String | text | 否 | 响应的数据类型 |
enableHttp2 | Boolean | false | 否 | 开启 http2 |
enableChunked | Boolean | false | 否 | 开启 transfer-encoding chunked。 |
forceCellularNetwork | Boolean | false | 否 | 强制使用蜂窝网络发送请求 |
redirect | String | follow | 否 | 重定向拦截策略。 |
success | Function | 否 | 接口调用成功的回调函数 | |
fail | Function | 否 | 接口调用失败的回调函数 | |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
合法值 | 说明 |
---|---|
OPTIONS | HTTP 请求 OPTIONS |
GET | HTTP 请求 GET |
HEAD | HTTP 请求 HEAD |
POST | HTTP 请求 POST |
PUT | HTTP 请求 PUT |
DELETE | HTTP 请求 DELETE |
TRACE | HTTP 请求 TRACE |
CONNECT | HTTP 请求 CONNECT |
合法值 | 说明 |
---|---|
json | 返回的数据为 JSON,返回后会对返回的数据进行一次 JSON.parse |
其他 | 不对返回的内容进行 JSON.parse |
合法值 | 说明 |
---|---|
text | 响应的数据为文本 |
arraybuffer | 响应的数据为 ArrayBuffer |
合法值 | 说明 |
---|---|
follow | 不拦截重定向,即客户端自动处理重定向 |
manual | 拦截重定向。开启后,当 http 状态码为 3xx 时客户端不再自动重定向,而是触发 onHeadersReceived 回调,并结束本次 request 请求。可通过 onHeadersReceived 回调中的 header.Location 获取重定向的 url |
属性 | 类型 | 说明 |
---|---|---|
data | String/Object/Arraybuffer | 开发者服务器返回的数据 |
statusCode | Number | 开发者服务器返回的 HTTP 状态码 |
header | Object | 开发者服务器返回的 HTTP Response Header |
cookies | Array | 开发者服务器返回的 cookies,格式为字符串数组 |
属性 | 类型 | 说明 |
---|---|---|
errMsg | String | 错误信息 |
errno | Number | errno 错误码,错误码的详细说明参考 Errno 错误码 |
最终发送给服务器的数据是 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)...)
qg.request({
url: "example.php", //仅为示例,并非真实的接口地址
data: {
x: "",
y: ""
},
header: {
"content-type": "application/json" // 默认值
},
success(res) {
console.log(res.data);
}
});
请求任务对象
监听 HTTP Response Header 事件。会比请求完成事件更早
HTTP Response Header 事件的监听函数
属性 | 类型 | 说明 |
---|---|---|
header | Object | 开发者服务器返回的 HTTP Response Header |
statusCode | Number | 开发者服务器返回的 HTTP 状态码 (目前开发者工具上不会返回 statusCode 字段,可用真机查看该字段,后续将会支持) |
cookies | Array | 开发者服务器返回的 cookies,格式为字符串数组 |
监听 Transfer-Encoding Chunk Received 事件。当接收到新的 chunk 时触发。
Transfer-Encoding Chunk Received 事件的监听函数
属性 | 类型 | 说明 |
---|---|---|
data | ArrayBuffer | 返回的 chunk buffer |
移除 HTTP Response Header 事件的监听函数
onHeadersReceived 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
RequestTask.onHeadersReceived(listener);
RequestTask.offHeadersReceived(listener); // 需传入与监听时同一个的函数对象
移除 Transfer-Encoding Chunk Received 事件的监听函数
onChunkReceived 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
RequestTask.onChunkReceived(listener);
RequestTask.offChunkReceived(listener); // 需传入与监听时同一个的函数对象
中断请求任务