引言
网络请求是鸿蒙应用开发中最基础也最核心的能力之一,无论是视频播放、即时通讯这类实时场景,还是新闻阅读、移动支付这类需要海量或敏感数据的场景,都需要网络来突破本地存储和实时性的限制。本节课将系统讲解网络请求的应用场景、通信基础概念,以及 HTTP 请求与响应的完整流程、格式规范和核心方法,为鸿蒙网络开发打下基础。
核心内容
网络获取数据场景
开发应用需要从网络获取数据,核心原因有两个:
本地存储空间不足:海量视频、图片等资源文件无法全部存储在用户设备中。典型场景为在线视频播放,采用边加载边播放的方案。
需要实时获取动态数据:数据会持续更新,必须通过网络获取最新内容。典型场景为天气查询、即时通讯。
在移动应用开发中,网络获取数据是必不可少的基础能力。以本地存储为例,512GB 存储空间已使用 506.88GB,剩余空间不足以安装新应用,说明把海量数据预置在本地是不现实的。
网络通信基础概念
核心角色
网络通信涉及两个核心角色:
| 角色 | 说明 |
|---|---|
| 客户端 | 用户使用的设备及设备上的应用,例如手机上的浏览器、地图 APP |
| 服务端 | 长期稳定运行,专门用于存储数据、提供服务的高性能服务器,随时等待客户端请求 |
通信流程
客户端主动发起请求,说明需求;服务端接收后处理请求,将结果以响应的形式返回给客户端。多个客户端可同时向同一个服务端发起请求。
通信协议
客户端与服务端通信需要统一规则来识别需求,这套规则就是通信协议。开发中最常用的是HTTP 协议,它是一种用于客户端和服务端之间传输超文本数据的应用层通信协议,规定了双方的通信格式和交互逻辑。
HTTP 请求核心知识
完整请求流程
客户端与服务端建立稳定通信连接。
客户端通过连接向服务端发送结构化请求内容。
服务端处理请求后返回响应。
URL 结构
URL(网址)是定位服务端资源的唯一地址,分为三个核心部分:
| 部分 | 说明 |
|---|---|
| 协议类型 | 例如HTTPS,是 HTTP 的加密版本,可防止数据被窃取或篡改,被广泛使用 |
| 域名 | 对应服务端的网络地址,用于找到目标服务器 |
| 资源路径 | 告知服务端需要访问的具体资源位置 |
HTTP 请求报文格式
请求报文是客户端发给服务端的结构化请求,有固定格式,包含请求行和请求头:
http
GET /consumer/cn/doc/ HTTP/1.1 HOST: developer.huawei.com Cache-Control: no-cache Accept: text/html, application/xhtml+xml... Accept-Language: zh-CN,zh
请求行(第一行):包含三个核心信息——请求方法、资源路径、HTTP 协议版本。
请求头:每行都是键值对,用于向服务端传递额外的控制信息。例如
HOST指定访问的域名,Accept说明客户端支持的数据类型。
常用 HTTP 请求方法
四种核心方法对应数据的增删改查操作:
| 方法 | 用途 | 特点 | 典型场景 |
|---|---|---|---|
GET | 获取数据 | 参数拼接在 URL 后 | 浏览新闻、搜索内容 |
POST | 提交数据 | 参数放在请求体中,不显示在 URL 上,相对更安全 | 登录、注册提交表单 |
PUT | 修改数据 | 告知服务端更新指定资源 | 修改用户个人信息 |
DELETE | 删除数据 | 告知服务端删除对应资源 | 删除已发布的动态 |
HTTP 响应核心知识
完整通信交互流程
客户端与服务端建立连接。
客户端向服务端发送请求。
服务端处理请求。
服务端向客户端发送响应。
客户端解析处理响应内容,无需通信后关闭连接。
HTTP 响应报文格式
响应报文是服务端返回给客户端的结构化结果,包含响应行、响应头、响应体三部分:
http
HTTP/1.1 200 OK Content-Type: text/html; charset=UTF-8 Content-Encoding: br Date: Fri, 12 Feb 2021 01:59:01 GMT Server: gws Cache-Control: private, max-age=0
响应行(第一行):包含三个核心信息——HTTP 协议版本、响应码、状态描述。
响应头:每行都是键值对,用于向客户端传递额外的响应信息。核心字段为
Content-Type,用于说明响应体的数据类型和编码格式,客户端按对应规则解析即可得到正确结果。响应体:实际返回的业务数据(示例中未展示)。
常见 HTTP 响应码分类
响应码可帮助快速定位网络错误,开发调试必须掌握:
| 分类 | 含义 | 常见示例 |
|---|---|---|
2xx | 服务端成功接收并正确处理了请求 | 200(请求成功,一切正常) |
4xx | 客户端请求错误,服务端无法处理 | 404(请求资源不存在)、403(服务端禁止访问该资源) |
5xx | 服务器端处理错误,客户端请求本身格式正确 | 500(服务器内部错误) |
总结
本节课学习了网络请求的核心基础知识:
网络获取数据的必要性:本地存储空间有限,无法存储海量资源;业务数据实时变化,必须通过网络获取最新内容。
网络通信基础:客户端发起请求,服务端处理后返回响应,一个服务端可同时服务多个客户端。HTTP 协议是客户端与服务端通信的通用规则。
HTTP 请求:URL 由协议、域名、资源路径三部分组成。请求报文包含请求行(请求方法 + 资源路径 + 协议版本)和请求头(键值对控制信息)。四种核心方法为
GET(查)、POST(增)、PUT(改)、DELETE(删)。HTTP 响应:响应报文包含响应行(协议版本 + 响应码 + 状态描述)、响应头(键值对额外信息,核心为
Content-Type)和响应体(实际数据)。响应码分为2xx(成功)、4xx(客户端错误)、5xx(服务端错误)三大类。