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

小_铁51CTO
发布于 2025-2-23 11:03
1.8w浏览
0收藏

🌟 使用ArkTS实现HTTP请求功能:GET与POST请求的封装

在开发鸿蒙应用时,网络请求是一个常见的需求。无论是获取数据还是提交数据,都需要与后端服务器进行交互。在ArkTS中,我们可以使用​​@ohos.net.http​​模块来实现HTTP请求。以下是一个封装好的HTTP请求工具类,支持GET和POST请求。

代码解析

1. 导入模块

import http from '@ohos.net.http';
  • 1.
  • 导入了鸿蒙提供的​​http​​模块,用于创建和管理HTTP请求。

2. GET请求封装

export function httpRequestGet(url: string, params?: string)
  return httpRequest(url, http.RequestMethod.GET, params);
}
  • 1.
  • 2.
  • 3.
  • 定义了一个​​httpRequestGet​​函数,用于发送GET请求。
  • 参数:
  • ​url​​:请求的URL。
  • ​params​​:可选参数,用于传递查询字符串。
  • 返回值:返回一个​​Promise<string>​​,表示请求的结果。

3. POST请求封装

export function httpRequestPost(url: string, params?: string)
  return httpRequest(url, http.RequestMethod.POST, params);
}
  • 1.
  • 2.
  • 3.
  • 定义了一个​​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 '';
  });
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 定义了一个通用的​​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);
});
  • 1.
  • 2.
  • 3.
  • 4.

POST请求示例

let url = 'https://api.example.com/submit';
let params = JSON.stringify({ key: 'value' });
httpRequestPost(url, params).then((data) => {
  console.log('POST请求结果: ', data);
});
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-2-23 11:13:36修改
收藏
回复
举报


回复
    相关推荐