HarmonyOS 请求相应HTTPS概览

1.HTTP概述
    请求和响应

2.HTTP请求开发步骤
    2.1.module.json5中添加 ohos.permission.INTERNET
    2.2.导入http模块
    2.3.创建htppt请求
    2.4.发起请求
    2.5.处理响应
    2.6.销毁http对象

3.几个基本概念:
   3.1.Webview:提供Web控制能力,Web组件提供网页显示能力
   3.2.HTTP数据请求:网络管理模块,提供HTTP数据请求能力,支持GET、POST、OPTIONS、    HEAD、PUT、DELETE、TRACE、CONNECT请求方法
   3.3. HTTPS:应用层协议,支持加密传输以及身份认证,保证数据的安全传输
   3.4.SSL:SSL(Secure Socket Layer)安全套接层是位于传输通信协议(TCP/IP)之上实现的一种安全协议
   3.5.TLS:TLS(Transport Layer Security)是一种安全协议,旨在实现数据加密传输

4.HTTPS:
HTTPS协议是位于应用层的一种安全传输协议,与HTTP最大的区别是服务端与客户端之间进行数据传输都会经过TLS/SSL加密

5.四次握手:本质是一个数据传输前的检验过程

    5.1. 客户端首先会进行第一次握手连接,发送“Client Hello”消息给服务端开启一个新的会话连接
    5.2. 服务端接收到客户端数据后,将响应数据通过“Sever Hello”传递给客户端,包括随机数(Sever Random,用于后续生成“会话密钥”)、协议版本号(TLS1.2)以及Cipher Suite(任意选择一个客户端支持的密码套件)
    5.3. 客户端收到“Server Hello Done”消息后,会将Client Params数据传递给服务端,其中包含自身生成的椭圆曲线公钥(Pubkey)
    5.4. 服务端利用Client Random、Server Random以及Client Params计算得出“会话密钥”,向客户端传递“Change Cipher Spec”和“Encrypted Handshake Message”消息供客户端校验。当双方校验通过后,真正的数据才开始传输

6.创建请求

1.
2. import { http } from '@kit.NetworkKit';
3. import CommonConstant from '../constant/CommonConstants';
4. export default async function httpGet(url: string) {
5. if (!url) {
6.   return undefined;
7. }
8. let request = http.createHttp();10. let result = await request.request(url, {
11.   method: http.RequestMethod.GET,
12.   header: { 'Content-Type': 'application/json' },
13.   readTimeout: CommonConstant.READ_TIMEOUT,
14.   connectTimeout: CommonConstant.CONNECT_TIMEOUT
15. });
16.   return result;
17. }

6.调用请求

1. async onRequest() {
2.    if (this.webVisibility === Visibility.Hidden) {
3.       this.webVisibility = Visibility.Visible;
4.    try {
5.       let result = await httpGet(this.webSrc);
6.    if (result && result.responseCode === http.ResponseCode.OK) {
7.       this.controller.clearHistory();
8.       this.controller.loadUrl(this.webSrc);
9.    }
10.  } catch (error) {
11.    promptAction.showToast({
12.    message: $r('app.string.http_response_error')
13.       })
14.    }
15.  } else {
16.    this.webVisibility = Visibility.Hidden;
17.    }
18. }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3267375.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

购买反向链接是明智的吗?

​在商业世界里,免费的午餐几乎是不存在。即便你的网站内容质量再好,也很难指望别人会无偿为你提供反向链接。购买反向链接绝对是明智的选择,纵观任何一个有排名的大网站,外链数量起码几千条打底,难不成你打算一条一条…

Linux的yum源安装MySQL5.7

linux的yum源安装MySQL5.7 一、MySQL 1、简介 MySQL 是一种流行的关系型数据库管理系统(RDBMS),由瑞典公司 MySQL AB 开发,后来被 Oracle Corporation 收购。它是一个开源软件,提供了高效、稳定和可靠的数据管理解决…

在 ArchLinux 上编译运行 axmol 引擎

本文将在 Windows 10 上安装 Arch WSL 中编译 axmol 请确保 WSL2 已正确安装 1. 在微软应用商店安装 ArchLinux 2. 打开 Arch,按照提示输入用户名和密码,尽量简单 3. 配置清华源,速度快的起飞,否则,各种包会安装失败…

Animate软件基础:复制、粘贴、删除或移动帧或帧序列

关键帧和其之后的常规帧范围称为关键帧序列。时间轴可以包含任意数量的关键帧序列。 FlashASer:Animate 2022零基础应用教程之教师篇https://zhuanlan.zhihu.com/p/555447498 FlashASer:Animate教程及作品源文件https://zhuanlan.zhihu.com/p/67743743…

Roadmap模板

https://www.officetimeline.com/roadmaps https://venngage.com/blog/product-roadmap/ https://roadmunk.com/guides/roadmap-definition/

数据结构 | LinkedList与链表

前言 ArrayList底层使用连续的空间,任意位置(尤其是0位置下标)插入或删除元素时,需要将该位置后序元素 整体 往前或往后搬移,故时间复杂度为O(N). 优点(给定一个下标,可以快速查找到对应的元素,时间复杂度为O(1))增容需要申请新空间,拷贝数据,释放旧空间,会有不小的消耗.增容一…

Vue3计算属性终极实战:可媲美Element Plus Tree组件研发之节点勾选

前面完成了JuanTree组件的节点编辑和保存功能后,我们把精力放到节点勾选功能实现上来。**注意,对于组件的开发者来说,要充分考虑用户的使用场景,组件提供的多个特性同时启用时必须要工作良好。**就拿Tree组件来说,用户…

标准IO

目录 思维导图: 学习内容: 1. IO基础 2. 标准IO 2.1 标准IO提供的内容 2.2 FILE结构体 2.2.1 结构体解析 2.3 fopen 打开文件 2.4 fclose:关闭文件 例如: 2.5 fgetc\fputc:单字符的输入输出 例如: 2.6 错…

概率论--最大似然估计

目录 概念 基本原理 应用领域 实际应用案例 优缺点 优点: 缺点: 延伸 最大似然估计在机器学习中的具体应用案例是什么? 如何解决最大似然估计在处理小样本数据时的偏差问题? 最大似然估计与其他参数估计方法&#xff08…

uniapp手写滚动选择器

文章目录 效果展示HTML/Template部分&#xff1a;JavaScript部分&#xff1a;CSS部分&#xff1a;完整代码 没有符合项目要求的选择器 就手写了一个 效果展示 实现一个时间选择器的功能&#xff0c;可以选择小时和分钟&#xff1a; HTML/Template部分&#xff1a; <picker…

【文件fd】文件描述符fd | 文件描述表

目录 1.文件描述符fd 2.系统调用的0/1/2 3.C语言的stdin/stdout/stderr 4.系统调用的0/1/2和C语言的stdin/stout/stderr二者的关系❓ 5.文件描述表 5.1 文件描述符概念 5.3 文件对象strcut file 5.4 进程和文件对应关系 5.5 文件描述符理解 5.6 源码查看 1.文件描述…

AI行业合适做必应bing推广吗?怎么开户呢?

快速发展的AI行业中&#xff0c;有效的市场获客渠道是关键&#xff0c;随着数字营销领域的不断演进&#xff0c;必应Bing以其独特的市场定位、庞大的用户基础和高效的广告系统&#xff0c;成为AI企业推广策略中的重要一环。特别是针对那些寻求精准触达、高效转化的AI企业而言&a…

C++初级学习:⼊⻔基础

本文内容&#xff1a; 1.C参考⽂档&#xff1a;2.C第一个程序3.命名空间3.1namespace的价值3.2namespace的定义3.3命名空间的使用 4.C输⼊&输出5.缺省参数6.函数重载 1.C参考⽂档&#xff1a; https://legacy.cplusplus.com/reference/ https://zh.cppreference.com/w/cp…

【React】JSX:从基础语法到高级用法的深入解析

文章目录 一、什么是 JSX&#xff1f;1. 基础语法2. 嵌入表达式3. 使用属性4. JSX 是表达式 二、JSX 的注意事项1. 必须包含在单个父元素内2. JSX 中的注释3. 避免注入攻击 三、JSX 的高级用法1. 条件渲染2. 列表渲染3. 内联样式4. 函数作为子组件 四、最佳实践 在 React 开发中…

【C++】19.红黑树模拟实现 set 和 map

我们想要实现STL中的set和map&#xff0c;那么第一步就需要看一下库函数是如何实现的&#xff1a; 通过查看源代码我们发现两个容器都包含了stl_tree.h&#xff0c;因此我们猜测此头文件实现的是红黑树。 但是set和map很显然不是使用同一棵树实现的&#xff0c;那么STL库是怎么…

C# Nmodbus,EasyModbusTCP读写操作

Nmodbus读写 两个Button控件分别为 读取和写入 分别使用控件的点击方法 ①引用第三方《NModbus4》2.1.0版本 全局 public SerialPort port new SerialPort("COM2", 9600, Parity.None, 8, (StopBits)1); ModbusSerialMaster master; public Form1() port.Open();…

Beam Search 原理详解

文章目录 1. 前言2. 原理3. 举例4. 参考 1. 前言 Beam Search 是一种启发式图搜索算法&#xff0c;用于在图或树的搜索过程中寻找最有可能的路径。它常用于自然语言处理&#xff08;NLP&#xff09;中的序列生成任务&#xff0c;如机器翻译、语音识别和文本生成等。与穷举搜索…

渲染技术如何帮助设计内容实现从平面到立体的转换

随着数字艺术和视觉特效的飞速发展&#xff0c;三维建模与渲染技术在影视、游戏、广告、工业设计、建筑可视化等多个领域展现出了其不可或缺的重要性。这一技术不仅实现了从平面到立体的跨越&#xff0c;还极大地丰富了视觉表达的层次感和真实感。 三维建模&#xff1a;构建虚…

一站式企业服务平台有哪些特点和优势!

随着我国经济的快速发展&#xff0c;各地方政府及产业园区为了能够吸引投资和优质企业入驻&#xff0c;纷纷在营商环境优化上大下功夫&#xff0c;这是因为当下企业已经不再满足于基础服务&#xff0c;而是更看重利于企业发展的软环境&#xff0c;随之建设“一站式企业服务平台…

flex/lex使用和学习

flex/lex用于生成解析配置文件的C代码&#xff0c;我们可以不用自己手动去做解析的工作&#xff0c;交由他们生成的代码去做。 假设&#xff0c;我有如下一个配置文件config.xml 配置文件中定义了三种channel,分别为SSIF, IPMB, NET&#xff0c;每一种channel都有4个int属性&a…