回复
鸿蒙开发(二):使用ArkTS实现HTTP请求功能:GET与POST请求的封装 原创
小_铁
发布于 2025-2-23 11:03
浏览
1收藏
🌟 使用ArkTS实现HTTP请求功能:GET与POST请求的封装
在开发鸿蒙应用时,网络请求是一个常见的需求。无论是获取数据还是提交数据,都需要与后端服务器进行交互。在ArkTS中,我们可以使用@ohos.net.http模块来实现HTTP请求。以下是一个封装好的HTTP请求工具类,支持GET和POST请求。
代码解析
1. 导入模块
import http from '@ohos.net.http';- 导入了鸿蒙提供的
http模块,用于创建和管理HTTP请求。
2. GET请求封装
export function httpRequestGet(url: string, params?: string)
return httpRequest(url, http.RequestMethod.GET, params);
}- 定义了一个
httpRequestGet函数,用于发送GET请求。 - 参数:
-
url:请求的URL。 -
params:可选参数,用于传递查询字符串。
- 返回值:返回一个
Promise<string>,表示请求的结果。
3. POST请求封装
export function httpRequestPost(url: string, params?: string)
return httpRequest(url, http.RequestMethod.POST, params);
}- 定义了一个
httpRequestPost函数,用于发送POST请求。 - 参数:
-
url:请求的URL。 -
params:可选参数,用于传递请求体数据。
- 返回值:返回一个
Promise<string>,表示请求的结果。
4. HTTP请求通用实现
function httpRequest(url: string, method: http.RequestMethod, params?: string): Promise<string> {
let httpRequest = http.createHttp();
let responseResult = httpRequest.request(
url, {
method: method,
readTimeout: 10000, // 读取超时时间,可选
header: {
'Content-Type': 'application/json' // 数据提交方式
},
connectTimeout: 10000, // 连接超时时间
extraData: params
}
);
let getjson: string = '';
return responseResult.then((value: http.HttpResponse) =>
console.log('请求状态 -- > ' + value.responseCode);
if (value.responseCode === 200) {
console.log("请求成功");
let result = `${value.result}`;
getjson = result;
} else {
getjson = '';
}
return getjson;
}).catch(() =>
httpRequest.destroy();
return '';
});
}- 定义了一个通用的
httpRequest函数,用于处理HTTP请求。 - 参数:
-
url:请求的URL。 -
method:请求方法,可以是http.RequestMethod.GET或http.RequestMethod.POST。 -
params:可选参数,用于传递查询字符串或请求体数据。
- 返回值:返回一个
Promise<string>,表示请求的结果。 - 实现:
- 使用
http.createHttp()创建一个HTTP请求对象。 - 使用
httpRequest.request()发送请求,配置请求方法、超时时间、请求头和请求体。 - 在
then回调中,检查响应状态码,如果状态码为200,表示请求成功,返回响应结果;否则返回空字符串。 - 在
catch回调中,捕获异常并销毁HTTP请求对象,返回空字符串。
使用示例
GET请求示例
let url = 'https://api.example.com/data';
httpRequestGet(url).then((data) => {
console.log('GET请求结果: ', data);
});POST请求示例
let url = 'https://api.example.com/submit';
let params = JSON.stringify({ key: 'value' });
httpRequestPost(url, params).then((data) => {
console.log('POST请求结果: ', data);
});©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-2-23 11:13:36修改
赞
收藏 1
回复
相关推荐




















