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. }

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值