发起 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); // 需传入与监听时同一个的函数对象
中断请求任务