未验证 提交 943829f6 编写于 作者: O openharmony_ci 提交者: Gitee

!16554 Improve documentation of request2

Merge pull request !16554 from Yangys/master
......@@ -90,6 +90,78 @@ httpRequest.request(
);
```
## request2接口开发步骤
1. 从@ohos.net.http.d.ts中导入http命名空间。
2. 调用createHttp()方法,创建一个HttpRequest对象。
3. 调用该对象的on()方法,可以根据业务需要订阅HTTP响应头事件、HTTP流式响应数据接收事件、HTTP流式响应数据接收进度事件和HTTP流式响应数据接收完毕事件。
4. 调用该对象的request2()方法,传入http请求的url地址和可选参数,发起网络请求。
5. 按照实际业务需要,可以解析返回的响应码。
6. 调用该对象的off()方法,取消订阅相应事件。
7. 当该请求使用完毕时,调用destroy()方法主动销毁。
```js
// 引入包名
import http from '@ohos.net.http'
// 每一个httpRequest对应一个HTTP请求任务,不可复用
let httpRequest = http.createHttp();
// 用于订阅HTTP响应头事件
httpRequest.on('headersReceive', (header) => {
console.info('header: ' + JSON.stringify(header));
});
// 用于订阅HTTP流式响应数据接收事件
let res = '';
httpRequest.on('dataReceive', (data) => {
res += data;
console.info('res: ' + res);
});
// 用于订阅HTTP流式响应数据接收完毕事件
httpRequest.on('dataEnd', () => {
console.info('No more data in response, data receive end');
});
// 用于订阅HTTP流式响应数据接收进度事件
httpRequest.on('dataProgress', (data) => {
console.log("dataProgress receiveSize:" + data.receiveSize+ ", totalSize:" + data.totalSize);
});
httpRequest.request2(
// 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
"EXAMPLE_URL",
{
method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET
// 开发者根据自身业务需要添加header字段
header: {
'Content-Type': 'application/json'
},
// 当使用POST请求时此字段用于传递内容
extraData: {
"data": "data to send",
},
expectDataType: http.HttpDataType.STRING, // 可选,指定返回数据的类型
usingCache: true, // 可选,默认为true
priority: 1, // 可选,默认为1
connectTimeout: 60000, // 可选,默认为60000ms
readTimeout: 60000, // 可选,默认为60000ms。若传输的数据较大,需要较长的时间,建议增大该参数以保证数据传输正常终止
usingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定
}, (err, data) => {
console.info('error:' + JSON.stringify(err));
console.info('ResponseCode :' + JSON.stringify(data));
// 取消订阅HTTP响应头事件
httpRequest.off('headersReceive');
// 取消订阅HTTP流式响应数据接收事件
httpRequest.off('dataReceive');
// 取消订阅HTTP流式响应数据接收进度事件
httpRequest.off('dataProgress');
// 取消订阅HTTP流式响应数据接收完毕事件
httpRequest.off('dataEnd');
// 当该请求使用完毕时,调用destroy方法主动销毁
httpRequest.destroy();
}
);
```
## 相关实例
针对HTTP数据请求,有以下相关实例可供参考:
- [`Http:`数据请求(ArkTS)(API9))](https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Connectivity/Http)
......
......@@ -332,7 +332,7 @@ httpRequest.destroy();
### request2<sup>10+</sup>
request2(url: string, callback: AsyncCallback\<void\>): void
request2(url: string, callback: AsyncCallback\<number\>): void
根据URL地址和相关配置项,发起HTTP网络请求并返回流式响应,使用callback方式作为异步方法。
......@@ -345,7 +345,7 @@ request2(url: string, callback: AsyncCallback\<void\>): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------------- | ---- | ----------------------------------------------- |
| url | string | 是 | 发起网络请求的URL地址。 |
| callback | AsyncCallback\<void\> | 是 | 回调函数。 |
| callback | AsyncCallback\<[number](#responsecode)\> | 是 | 回调函数。 |
**错误码:**
......@@ -366,9 +366,9 @@ request2(url: string, callback: AsyncCallback\<void\>): void
**示例:**
```js
httpRequest.request2("EXAMPLE_URL", (err) => {
httpRequest.request2("EXAMPLE_URL", (err, data) => {
if (!err) {
console.info("request2 OK!");
console.info("request2 OK! ResponseCode is " + JSON.stringify(data));
} else {
console.info("request2 ERROR : err = " + JSON.stringify(err));
}
......@@ -377,7 +377,7 @@ httpRequest.request2("EXAMPLE_URL", (err) => {
### request2<sup>10+</sup>
request2(url: string, options: HttpRequestOptions, callback: AsyncCallback\<void\>): void
request2(url: string, options: HttpRequestOptions, callback: AsyncCallback\<number\>): void
根据URL地址和相关配置项,发起HTTP网络请求并返回流式响应,使用callback方式作为异步方法。
......@@ -391,7 +391,7 @@ request2(url: string, options: HttpRequestOptions, callback: AsyncCallback\<void
| -------- | ---------------------------------------------- | ---- | ----------------------------------------------- |
| url | string | 是 | 发起网络请求的URL地址。 |
| options | HttpRequestOptions | 是 | 参考[HttpRequestOptions](#httprequestoptions)。 |
| callback | AsyncCallback\<void\> | 是 | 回调函数。 |
| callback | AsyncCallback\<[number](#responsecode)\> | 是 | 回调函数。 |
**错误码:**
......@@ -444,9 +444,9 @@ httpRequest.request2("EXAMPLE_URL",
},
readTimeout: 60000,
connectTimeout: 60000
}, (err) => {
}, (err, data) => {
if (!err) {
console.info("request2 OK!");
console.info("request2 OK! ResponseCode is " + JSON.stringify(data));
} else {
console.info("request2 ERROR : err = " + JSON.stringify(err));
}
......@@ -454,7 +454,7 @@ httpRequest.request2("EXAMPLE_URL",
```
### request2<sup>10+</sup>
request2(url: string, options? : HttpRequestOptions): Promise\<void\>
request2(url: string, options? : HttpRequestOptions): Promise\<number\>
根据URL地址,发起HTTP网络请求并返回流式响应,使用Promise方式作为异步方法。
......@@ -473,7 +473,7 @@ request2(url: string, options? : HttpRequestOptions): Promise\<void\>
| 类型 | 说明 |
| :------------------------------------- | :-------------------------------- |
| Promise\<void\> | 以Promise形式返回发起请求的结果。 |
| Promise\<[number](#responsecode)\> | 以Promise形式返回发起请求的结果。 |
**错误码:**
......@@ -526,8 +526,8 @@ let promise = httpRequest.request("EXAMPLE_URL", {
'Content-Type': 'application/json'
}
});
promise.then(() => {
console.info("request2 OK!");
promise.then((data) => {
console.info("request2 OK!" + JSON.stringify(data));
}).catch((err) => {
console.info("request2 ERROR : err = " + JSON.stringify(err));
});
......
......@@ -2674,4 +2674,4 @@ TLS通信的协议版本。
| 类型 | 说明 |
| --------------------------------------------------------------------- | --------------------- |
|[cryptoFramework.EncodingBlob](js-apis-cryptoFramework.md#datablob) | 存储证书的数据和编码格式 |
|[cert.EncodingBlob](js-apis-cert.md#datablob) | 存储证书的数据和编码格式 |
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册