HarmonyOS使用HTTP访问网络

这篇具有很好参考价值的文章主要介绍了HarmonyOS使用HTTP访问网络。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTTP数据请求

1 概述

日常生活中我们使用应用程序看新闻、发送消息等,都需要连接到互联网,从服务端获取数据。例如,新闻应用可以从新闻服务器中获取最新的热点新闻,从而给用户打造更加丰富、更加实用的体验。

HarmonyOS使用HTTP访问网络,harmonyos,http,鸿蒙系统

那么要实现这样一种能实时从服务端获取数据的场景,就依赖于HTTP数据请求。

2 什么是HTTP

HTTP即超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

HarmonyOS使用HTTP访问网络,harmonyos,http,鸿蒙系统

HTTP的工作原理正如上图所示,客户端向服务端发出一条HTTP数据请求,服务端接收请求后向客户端返回一些数据,然后客户端再对这些数据进行解析和处理。

3 如何发起HTTP请求

HTTP数据请求功能主要由http模块提供,包括发起请求、中断请求、订阅/取消订阅HTTP Response Header 事件等。

在进行网络请求前,您需要在module.json5文件中申明网络访问权限。

{
    "module" : {
        "requestPermissions":[
           {
             "name": "ohos.permission.INTERNET"
           }
        ]
    }
}

HarmonyOS使用HTTP访问网络,harmonyos,http,鸿蒙系统

应用访问网络需要申请ohos.permission.INTERNET权限,因为HarmonyOS提供了一种访问控制机制即应用权限,用来保证这些数据或功能不会被不当或恶意使用。关于应用权限的的详细信息开发者可以参考:访问控制。

您可以按照以下步骤完成HTTP数据请求:

  1. 导入http模块。

    import http from '@ohos.net.http';
    
  2. 创建httpRequest对象。

    使用createHttp()创建一个httpRequest对象,里面包括常用的一些网络请求方法,比如request、destroy、on(‘headerReceive’)等。

    let httpRequest = http.createHttp();
    

    需要注意的是每一个httpRequest对象对应一个http请求任务,不可复用。

  3. 订阅请求头(可选)。

    用于订阅http响应头,此接口会比request请求先返回,可以根据业务需要订阅此消息。

    httpRequest.on('headersReceive', (header) => {
        console.info('header: ' + JSON.stringify(header));
    });
    
  4. 发起http请求。

    http模块支持常用的POST和GET等方法,封装在RequestMethod中。调用request方法发起网络请求,需要传入两个参数。第一个是请求的url地址,第二个是可选参数,类型为HttpRequestOptions,用于定义可选参数的类型和取值范围,包含请求方式、连接超时时间、请求头字段等。

    使用Get请求,参数内容需要拼接到URL中进行发送,如下示例中在url后面拼接了两个自定义参数,分别命名为param1和param2,值分别为value1和value2:

    let url= "https://EXAMPLE_URL?param1=v1&param2=v2";
    let promise = httpRequest.request(
      // 请求url地址
      url,
      {
        // 请求方式
        method: http.RequestMethod.GET,
        // 可选,默认为60s
        connectTimeout: 60000,
        // 可选,默认为60s
        readTimeout: 60000,
        // 开发者根据自身业务需要添加header字段
        header: {
          'Content-Type': 'application/json'
        }
      });
    

    POST请求参数需要添加到extraData里面,如下示例中在extraData里面定义添加了两个自定义参数param1和param2,值分别为value1和value2:

    let url = "https://EXAMPLE_URL";
    let promise = httpRequest.request(
      // 请求url地址
      url,
      {
        // 请求方式
        method: http.RequestMethod.POST,
        // 请求的额外数据。
        extraData: {
          "param1": "value1",
          "param2": "value2",
        },
        // 可选,默认为60s
        connectTimeout: 60000,
        // 可选,默认为60s
        readTimeout: 60000,
        // 开发者根据自身业务需要添加header字段
        header: {
          'Content-Type': 'application/json'
        }
      });
    
  5. 处理响应结果。

    data为网络请求返回的结果,err为请求异常时返回的结果。data的类型为HttpResponse。

    promise.then((data) => { 
      if (data.responseCode === http.ResponseCode.OK) {
        console.info('Result:' + data.result);
        console.info('code:' + data.responseCode);
      }
    }).catch((err) => {
      console.info('error:' + JSON.stringify(err));
    });
    

    其中data.responseCode为http请求返回的状态码,如果状态码为http.ResponseCode.OK(即200),则表示请求成功,更多状态码可以在ResponseCode中查看。

    data.result为服务器返回的业务数据,开发者可以根据自身业务场景解析此数据。

4 参考链接

  1. http数据请求参考:数据请求。

  2. 应用权限参考:访问控制。文章来源地址https://www.toymoban.com/news/detail-768375.html

到了这里,关于HarmonyOS使用HTTP访问网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【HarmonyOS】【ArkTS】如何使用HTTP网络请求获取动态数据刷新UI界面

    【】 HttpRequest、ArkTS、网络数据请求、@ohos.net.http 【前言】 在使用ArkTS开发HarmonyOS应用时,需要调用HTTP网络请求 @ohos.net.http 动态获取数据,进行UI列表刷新,这想必是应用开发最常见的功能。但是根据官网网络请求的示例代码进行功能开发时,封装方法进行HTTP请求后

    2024年02月08日
    浏览(32)
  • HarmonyOS 发送http网络请求

    好 本文 我们来说 http请求 首先 我们要操作网络内容 需要申请权限 项目中找到 main目录下的module.json5 最下面加上 这里 我在本地写了一个get接口 大家可以想办法 弄一个后端接口 首先 我们编写一个组件雏形 我们导入 @ohos.net.http 然后 通过 createHttp 获取一个http对象 然后通过对

    2024年01月23日
    浏览(37)
  • HarmonyOS开发:基于http开源一个网络请求库

    网络封装的目的,在于简洁,使用起来更加的方便,也易于我们进行相关动作的设置,如果,我们不封装,那么每次请求,就会重复大量的代码逻辑,如下代码,是官方给出的案例: 以上的案例,每次请求书写这么多代码,在实际的开发中,是无法承受的,所以基于此,封装

    2024年02月06日
    浏览(42)
  • 【HarmonyOS开发】ArkTs使用Http封装

    @ohos/axios @ohos/retrofit @ohos/httpclient @ohos.net.http 本模块提供HTTP数据请求能力。应用可以通过HTTP发起一个数据请求,支持常见的GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT方法。 http.createHttp(创建请求实例任务); request(请求); destroy(中断请求); on(订阅HTTP Response H

    2024年01月22日
    浏览(38)
  • 非华为机型如何体验HarmonyOS鸿蒙系统 刷写HarmonyOS鸿蒙GSI系统以及一些初步的bug修复

    最近很多视频网站有非华为机型使用HarmonyOS鸿蒙系统的演示。其实大都是刷了HarmonyOS鸿蒙系统gsi系统。体验还可以。有些刷入后bug较多。那么这些机型是如何刷写gsi?可以参考我以往帖子 安卓玩机搞机-----没有第三方包 刷写第三方各种GSI系统 体验非官方系统_gsi刷机包_安卓机

    2024年02月09日
    浏览(33)
  • 初识鸿蒙HarmonyOS系统

    鸿蒙HarmonyOS的诞生背景 鸿蒙HarmonyOS的起源:           鸿蒙HarmonyOS是中华为面对全球科技发展趋势和自身战略需求,在2019年推出的全新一代面向全场景的分布式操作系统。它的诞生旨在应对物联网时代下各种智能设备互联互通的需求,以及构建自主可控的生态系统,特别是

    2024年04月13日
    浏览(31)
  • HarmonyOS-鸿蒙系统概述

    你了解鸿蒙系统吗? 你看好鸿蒙系统吗? 今年秋季即将推出的HarmonyOS Next 星河版热度空前,一起来了解一下吧。本文将从HarmonyOS 的应用场景、发展历程、架构、开发语言、开发工具、生态建设六个角度聊一聊个人的理解。 1、应用场景 鸿蒙,原本意思是中国神话传说的远古

    2024年04月10日
    浏览(35)
  • HarmonyOS鸿蒙操作系统架构

    目录 1. 分布式架构: 2. 统一的开发平台: 3. 多内核共享: 4. 自适应界面: 5. AR、VR、MR支持: 6. 安全和隐私保护: 7. AI集成: 8. 应用生态系统: 9. 开源和开放: 10. 快速部署和更新: 11. 分布式数据管理: 12. 分布式安全体系: 13. 分布式标识和认证: 14. 统一的开发语言和

    2024年02月04日
    浏览(41)
  • 【HarmonyOS】鸿蒙操作系统架构

    其它相关推荐: 软考系统架构之案例篇(架构设计相关概念) 系统架构之微服务架构 系统架构设计之微内核架构 所属专栏:系统架构设计师 HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统。 在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力、适

    2024年02月08日
    浏览(36)
  • 【HarmonyOS】小熊派鸿蒙系统搭建

    BearPi-HM Micro开发板是一块高度集成并可运行Openharmony系统的开发板,板载高性能的工业级处理器STM32MP157芯片,搭配4.3寸LCD电容式触摸屏,并板载wifi电路及标准的E53接口,标准的E53接口可扩展智能加湿器、智能台灯、智能安防、智能烟感等案例。可折叠式屏幕设计大大提高用户

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包