Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
4724234e
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4724234e
编写于
3月 27, 2023
作者:
Y
Yangys
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Improve documentation of request2
Signed-off-by:
N
Yangys
<
yangyousheng@huawei.com
>
上级
c490b9ce
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
84 addition
and
12 deletion
+84
-12
zh-cn/application-dev/connectivity/http-request.md
zh-cn/application-dev/connectivity/http-request.md
+72
-0
zh-cn/application-dev/reference/apis/js-apis-http.md
zh-cn/application-dev/reference/apis/js-apis-http.md
+12
-12
未找到文件。
zh-cn/application-dev/connectivity/http-request.md
浏览文件 @
4724234e
...
@@ -90,6 +90,78 @@ httpRequest.request(
...
@@ -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数据请求,有以下相关实例可供参考:
-
[
`Http:`数据请求(ArkTS)(API9))
](
https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Connectivity/Http
)
-
[
`Http:`数据请求(ArkTS)(API9))
](
https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Connectivity/Http
)
...
...
zh-cn/application-dev/reference/apis/js-apis-http.md
浏览文件 @
4724234e
...
@@ -332,7 +332,7 @@ httpRequest.destroy();
...
@@ -332,7 +332,7 @@ httpRequest.destroy();
### request2<sup>10+</sup>
### request2<sup>10+</sup>
request2(url: string, callback: AsyncCallback
\<
void
\>
): void
request2(url: string, callback: AsyncCallback
\<
number
\>
): void
根据URL地址和相关配置项,发起HTTP网络请求并返回流式响应,使用callback方式作为异步方法。
根据URL地址和相关配置项,发起HTTP网络请求并返回流式响应,使用callback方式作为异步方法。
...
@@ -345,7 +345,7 @@ request2(url: string, callback: AsyncCallback\<void\>): void
...
@@ -345,7 +345,7 @@ request2(url: string, callback: AsyncCallback\<void\>): void
| 参数名 | 类型 | 必填 | 说明 |
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------------- | ---- | ----------------------------------------------- |
| -------- | ---------------------------------------------- | ---- | ----------------------------------------------- |
| url | string | 是 | 发起网络请求的URL地址。 |
| url | string | 是 | 发起网络请求的URL地址。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。 |
| callback | AsyncCallback
\<
[
number
](
#responsecode
)
\>
| 是 | 回调函数。 |
**错误码:**
**错误码:**
...
@@ -366,9 +366,9 @@ request2(url: string, callback: AsyncCallback\<void\>): void
...
@@ -366,9 +366,9 @@ request2(url: string, callback: AsyncCallback\<void\>): void
**示例:**
**示例:**
```
js
```
js
httpRequest
.
request2
(
"
EXAMPLE_URL
"
,
(
err
)
=>
{
httpRequest
.
request2
(
"
EXAMPLE_URL
"
,
(
err
,
data
)
=>
{
if
(
!
err
)
{
if
(
!
err
)
{
console
.
info
(
"
request2 OK!
"
);
console
.
info
(
"
request2 OK!
ResponseCode is
"
+
JSON
.
stringify
(
data
)
);
}
else
{
}
else
{
console
.
info
(
"
request2 ERROR : err =
"
+
JSON
.
stringify
(
err
));
console
.
info
(
"
request2 ERROR : err =
"
+
JSON
.
stringify
(
err
));
}
}
...
@@ -377,7 +377,7 @@ httpRequest.request2("EXAMPLE_URL", (err) => {
...
@@ -377,7 +377,7 @@ httpRequest.request2("EXAMPLE_URL", (err) => {
### request2<sup>10+</sup>
### 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方式作为异步方法。
根据URL地址和相关配置项,发起HTTP网络请求并返回流式响应,使用callback方式作为异步方法。
...
@@ -391,7 +391,7 @@ request2(url: string, options: HttpRequestOptions, callback: AsyncCallback\<void
...
@@ -391,7 +391,7 @@ request2(url: string, options: HttpRequestOptions, callback: AsyncCallback\<void
| -------- | ---------------------------------------------- | ---- | ----------------------------------------------- |
| -------- | ---------------------------------------------- | ---- | ----------------------------------------------- |
| url | string | 是 | 发起网络请求的URL地址。 |
| url | string | 是 | 发起网络请求的URL地址。 |
| options | HttpRequestOptions | 是 | 参考
[
HttpRequestOptions
](
#httprequestoptions
)
。 |
| options | HttpRequestOptions | 是 | 参考
[
HttpRequestOptions
](
#httprequestoptions
)
。 |
| callback | AsyncCallback
\<
void
\>
| 是 | 回调函数。 |
| callback | AsyncCallback
\<
[
number
](
#responsecode
)
\>
| 是 | 回调函数。 |
**错误码:**
**错误码:**
...
@@ -444,9 +444,9 @@ httpRequest.request2("EXAMPLE_URL",
...
@@ -444,9 +444,9 @@ httpRequest.request2("EXAMPLE_URL",
},
},
readTimeout
:
60000
,
readTimeout
:
60000
,
connectTimeout
:
60000
connectTimeout
:
60000
},
(
err
)
=>
{
},
(
err
,
data
)
=>
{
if
(
!
err
)
{
if
(
!
err
)
{
console
.
info
(
"
request2 OK!
"
);
console
.
info
(
"
request2 OK!
ResponseCode is
"
+
JSON
.
stringify
(
data
)
);
}
else
{
}
else
{
console
.
info
(
"
request2 ERROR : err =
"
+
JSON
.
stringify
(
err
));
console
.
info
(
"
request2 ERROR : err =
"
+
JSON
.
stringify
(
err
));
}
}
...
@@ -454,7 +454,7 @@ httpRequest.request2("EXAMPLE_URL",
...
@@ -454,7 +454,7 @@ httpRequest.request2("EXAMPLE_URL",
```
```
### request2<sup>10+</sup>
### request2<sup>10+</sup>
request2(url: string, options? : HttpRequestOptions): Promise
\<
void
\>
request2(url: string, options? : HttpRequestOptions): Promise
\<
number
\>
根据URL地址,发起HTTP网络请求并返回流式响应,使用Promise方式作为异步方法。
根据URL地址,发起HTTP网络请求并返回流式响应,使用Promise方式作为异步方法。
...
@@ -473,7 +473,7 @@ request2(url: string, options? : HttpRequestOptions): Promise\<void\>
...
@@ -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", {
...
@@ -526,8 +526,8 @@ let promise = httpRequest.request("EXAMPLE_URL", {
'
Content-Type
'
:
'
application/json
'
'
Content-Type
'
:
'
application/json
'
}
}
});
});
promise
.
then
(()
=>
{
promise
.
then
((
data
)
=>
{
console
.
info
(
"
request2 OK!
"
);
console
.
info
(
"
request2 OK!
"
+
JSON
.
stringify
(
data
)
);
}).
catch
((
err
)
=>
{
}).
catch
((
err
)
=>
{
console
.
info
(
"
request2 ERROR : err =
"
+
JSON
.
stringify
(
err
));
console
.
info
(
"
request2 ERROR : err =
"
+
JSON
.
stringify
(
err
));
});
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录