前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用httpclient实现一个网络请求

用httpclient实现一个网络请求

作者头像
徐建国
发布2024-07-05 14:56:40
60
发布2024-07-05 14:56:40
举报
文章被收录于专栏:个人路线个人路线

大家好,今天我们用httpclient实现一个网络请求,之前我们用的最多的就是原生,或者是axios,今天我们一起来看一下第三种实现方式。

httpclient简介

HTTP是现代应用程序通过网络交换数据和媒体的的主要方式。httpclient是OpenHarmony 里一个高效执行的HTTP客户端,使用它可使您的内容加载更快,并节省您的流量。httpclient以人们耳熟能详的OKHTTP为基础,整合android-async-http,AutobahnAndroid,OkGo等库的功能特性,致力于在OpenHarmony 打造一款高效易用,功能全面的网络请求库。当前版本的httpclient依托系统提供的网络请求能力和上传下载能力,在此基础上进行拓展开发。

功能

1.支持全局配置调试开关,超时时间,公共请求头和请求参数等,支持链式调用。

2.自定义任务调度器维护任务队列处理同步/异步请求。

3.支持tag取消请求。

4.支持设置自定义拦截器。

5.支持重定向。

6.支持客户端解压缩。

7.支持文件上传下载。

8.支持cookie管理。

9.支持对请求内容加解密。

10.支持自定义请求。

11.支持身份认证。

12.支持证书校验。

13.支持响应缓存。

14.支持请求配置responseData属性。

15.支持设置请求优先级。

16.支持证书锁定。

下载安装

代码语言:javascript
复制
ohpm install @ohos/httpclient

使用之前记得添加网络权限

代码语言:javascript
复制
"requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      },
      {
        "name": "ohos.permission.GET_NETWORK_INFO"
      }
    ]

GET请求示例

代码语言:javascript
复制
import { HttpClient, Request, Logger, HttpCall, Response, TimeUnit } from '@ohos/httpclient';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct SecondPage {
  @State message: string = 'Hello World';
  @State status: string = "";
  @State content: string = "";
  echoServer: string = "你的URL";
  client: HttpClient = new HttpClient
    .Builder()
    .setConnectTimeout(10, TimeUnit.SECONDS)
    .setReadTimeout(10, TimeUnit.SECONDS)
    .build();

  aboutToAppear(): void {

    this.getdate()
  }

  getdate() {


    // 配置请求参数
    let request = new Request.Builder()
      .get(this.echoServer)
      .addHeader("Content-Type", "application/json")
      .params("testKey1", "testValue1")
      .params("testKey2", "testValue2")
      .build();
    // 发起请求
    this.client.newCall(request).enqueue((result: Response) => {
      if (result) {
        this.status = result.responseCode.toString();
      }
      if (result.result) {
        this.content = result.result;
      } else {
        this.content = JSON.stringify(result);
      }
      Logger.info("onComplete -> Status : " + this.status);
      Logger.info("onComplete -> Content : " + JSON.stringify(this.content));
    }, (error: BusinessError) => {
      this.status = error.code.toString();
      this.content = JSON.stringify(error.data);
      Logger.info("onError -> Error : " + this.content);
    });


  }

  build() {
    Row() {
      Column() {
        Text(this.content)
          .fontSize(30)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

效果

可以看到数据是拿到了,接下来,如何处理数据,就看各位的了。

参考

https://gitee.com/openharmony-tpc/httpclient

关于坚果派

坚果派由坚果等人创建,团队拥有12个华为HDE,以及若干其他领域的三十余位万粉博主运营。专注于分享的技术包括HarmonyOS/OpenHarmony,ArkUI-X,元服务,服务卡片,华为自研语言,AI、BlueOS操作系统、团队成员聚集在北京,上海,南京,深圳,广州,宁夏等地。

团队介绍:

坚果派由坚果等人联合创建,团队拥有12个华为HDE,以及若干其他领域的三十余位万粉博主运营。专注于研究的技术包括HarmonyOS/OpenHarmony,华为自研语言,AI、BlueOS操作系统等。主营业务是面向国内外客户提供新一代信息技术为核心的产品、解决方案和服务。团队聚焦“鸿蒙原生应用”、“智能物联”和“AI赋能”、“人工智能”四大业务领域,依托华为开发者专家等强大的技术团队,以及涵盖需求、开发、测试、运维于一体的综合服务体系,赋能文旅、媒体、社交、家居、消费电子等行业客户,满足客户数字化升级转型的需求,帮助客户实现价值提升。

坚果介绍:

华为开发者专家(HUAWEI Developer Experts)、OpenHarmony布道师、华为跨平台框架布道师、OpenHarmony MVP、OpenHarmony校源行开源大使、中国计算机学会CCF专业会员、鸿蒙原生应用讲师、2023年OpenHarmony应用创新赛导师、RISC-V+OpenHarmony应用创意赛导师、2023,2024开源之夏导师、InfoQ签约作者,CSDN博客专家,51CTO博客专家,阿里云博客专家,电子发烧友社区之星,开发者学堂”十佳“讲师。OpenHarmony三方库贡献者,上架应用12款。上架三方库9款、作品入围2024鸿蒙创新赛曾受邀参加2022,2023HDC大会。以及作为华为鸿蒙生态学堂讲师在南京,上海等城市参与授课。在北京航空航天大学,北京师范大学,西北工业大学、哈尔滨工程大学,南京信息科技大学,等十余所高校开展鸿蒙/开源讲座。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 功能
  • 下载安装
  • GET请求示例
  • 效果
  • 参考
  • 关于坚果派
  • 团队介绍:
  • 坚果介绍:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档