鸿蒙开发(二):使用ArkTS实现HTTP请求功能:GET与POST请求的封装

2025-03-15 22:20:21
171次阅读
0个评论

🌟 使用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​​,表示请求的结果。

3. POST请求封装

export function httpRequestPost(url: string, params?: string) return httpRequest(url, http.RequestMethod.POST, params); }

定义了一个​​httpRequestPost​​函数,用于发送POST请求。 参数: ​​url​​:请求的URL。 ​​params​​:可选参数,用于传递请求体数据。 返回值:返回一个​​Promise​​,表示请求的结果。

4. HTTP请求通用实现

function httpRequest(url: string, method: http.RequestMethod, params?: string): Promise { 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​​,表示请求的结果。 实现: 使用​​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); });

收藏00

登录 后评论。没有帐号? 注册 一个。