前端知识点---http.createHttp()的理解(arkts)

通俗易懂的例子:点外卖 🍔🥤

想象一下,你在家里点外卖,HTTP 请求就像是你和餐厅之间的沟通方式。

1️⃣ 没有 http.createHttp():每次点餐都重新拨电话 📞

如果你每次点餐都重新拨打餐厅的电话,情况会变成这样:

你今天想吃 炸鸡 🍗,拨打电话 → "喂,请给我炸鸡" → 挂断电话。

明天想喝 奶茶 🥤,再拨打电话 → "喂,请给我一杯奶茶" → 挂断电话。

后天想吃 披萨 🍕,再拨打电话 → "喂,请给我披萨" → 挂断电话。

问题:

每次点单都要重新拨号,非常麻烦 📞📞📞。

餐厅可能每次接到新电话都要重新确认你的信息(比如地址),很低效。

你无法方便地管理所有点餐记录(比如想查之前点了什么)。

这个就像你每次都直接使用 fetch() 发送 HTTP 请求,每次都要重新建立连接,不方便。

2️⃣ 使用 http.createHttp():建立外卖客服专线 📞📠

现在,餐厅推出了一个VIP 点餐专线:

你第一次打电话,餐厅会给你一个专属客服编号(httpRequest)。

之后你只需要联系这个客服,不用每次重新拨号!

这个客服可以帮你存地址、提供折扣、跟踪订单,一切都更方便。

代码示例:

typescript 复制代码
// 1️⃣ 创建 HTTP 客户端,相当于和餐厅的客服建立联系
let httpRequest = http.createHttp(); 

// 2️⃣ 第一次下单(点炸鸡 🍗)
httpRequest.request('https://restaurant.com/order', {
  method: 'POST',
  body: JSON.stringify({ food: '炸鸡', quantity: 1 })
}).then(response => {
  console.log('订单已提交:', response.result);
}).catch(error => {
  console.log('点餐失败:', error);
});

// 3️⃣ 第二次下单(点奶茶 🥤)
httpRequest.request('https://restaurant.com/order', {
  method: 'POST',
  body: JSON.stringify({ food: '奶茶', quantity: 2 })
}).then(response => {
  console.log('订单已提交:', response.result);
}).catch(error => {
  console.log('点餐失败:', error);
});

3️⃣ http.createHttp() 帮助我们做了什么?

不需要每次都拨打新电话(创建新 HTTP 连接)。

客服(HTTP 客户端)帮你记住信息,你可以设置请求头、超时时间等配置。

可以批量管理订单,比如取消、修改订单,或者查询订单状态。

4️⃣ 进阶:设置默认地址

如果你每次点餐都要重复输入地址,太麻烦了,所以你可以让客服(httpRequest)默认帮你填好地址:

typescript 复制代码
// 1️⃣ 创建 HTTP 客户端,并设置默认超时时间和请求头(相当于存好地址)
let httpRequest = http.createHttp({
  timeout: 5000, // 设置超时时间 5 秒
  headers: { "Content-Type": "application/json", "Address": "我的家" } // 默认地址
});

// 2️⃣ 直接点餐(不需要重复输入地址)
httpRequest.request('https://restaurant.com/order', {
  method: 'POST',
  body: JSON.stringify({ food: '披萨', quantity: 1 })
}).then(response => {
  console.log('订单已提交:', response.result);
});

📌 这样每次点单时,地址已经填好了,省时省力!

5️⃣ 总结

✅ http.createHttp() 就像是建立了一个外卖客服专线,你可以随时通过这个专线点餐,而不需要每次都重新拨号。

✅ 如果不用 http.createHttp(),你每次点餐都要重新拨号(创建新的 HTTP 请求实例),会很麻烦。

✅ 可以设置默认信息(比如请求头、超时时间),让所有请求更方便。

✅ 更适合频繁的网络请求,如用户登录、订单提交、查询数据等。

💡 你可以把 http.createHttp() 理解为:

  • 有它 = 有专属客服,可以随时联系,管理所有点餐(网络请求)
  • 没有它 = 每次都要重新拨号,手动输入地址,效率低

在鸿蒙 ArkTS 中,http.createHttp() 用于创建一个 HTTP 客户端实例,这个实例可以用来:

发送 HTTP 请求(如 GET、POST、PUT、DELETE)。

处理服务器返回的响应数据。

进行异步网络请求,获取远程数据(比如调用 API)。

ts 复制代码
// 1️⃣ 创建 HTTP 客户端(相当于联系餐厅客服)
let httpRequest = http.createHttp();

// 2️⃣ 发送 GET 请求(查询菜单,相当于问客服:"你们有什么菜?")
httpRequest.request('https://restaurant.com/menu', {
  method: 'GET'
}).then(response => {
  console.log('菜单:', response.result);  // 服务器返回菜单
}).catch(error => {
  console.log('获取菜单失败:', error);
});

// 3️⃣ 发送 POST 请求(提交订单,相当于告诉客服:"我要点 1 份炸鸡")
httpRequest.request('https://restaurant.com/order', {
  method: 'POST',
  body: JSON.stringify({ food: '炸鸡', quantity: 1 }) // 提交订单内容
}).then(response => {
  console.log('订单提交成功:', response.result);
}).catch(error => {
  console.log('订单提交失败:', error);
});

🔹 then() 和 catch() 在点餐中的作用

.then(response => {...}):表示 请求成功时的处理逻辑(客服给你回复)。

在 点餐场景 下,客服回复 "您的订单已确认"。

.catch(error => {...}):表示 请求失败时的处理逻辑(客服告诉你订单失败)。

在 点餐场景 下,客服说 "不好意思,这道菜卖完了"。


🔹 为什么要用 http.createHttp()?

代码更清晰、可复用

http.createHttp() 让你只创建 一个 HTTP 客户端,不用每次都重新拨号(创建新连接)。

可以共享配置

你可以在 http.createHttp() 里设置 默认请求头、超时时间,后续请求都会继承这些设置,就像你的 专属客服记住了你的点餐习惯。

更适合多次请求的场景

适用于 用户登录、查询数据、提交表单 等需要频繁交互的情况,就像你经常点餐但不想每次重新拨号。

📌 总结

✅ http.createHttp() = 创建 HTTP 客户端,相当于联系餐厅的专属客服

✅ request() = 发送 HTTP 请求,相当于让客服帮你查询菜单或点餐

✅ .then() = 请求成功后的处理,相当于餐厅回复"您的订单已确认"

✅ .catch() = 请求失败后的处理,相当于餐厅回复"这道菜卖完了"

相关推荐
Z兽兽6 小时前
React@18+Vite项目配置env文件
前端·react.js·前端框架
SuniaWang6 小时前
《Spring AI + 大模型全栈实战》学习手册系列 · 专题六:《Vue3 前端开发实战:打造企业级 RAG 问答界面》
java·前端·人工智能·spring boot·后端·spring·架构
A_nanda7 小时前
根据AI提示排查vue前端项目
前端·javascript·vue.js
happymaker06267 小时前
web前端学习日记——DAY05(定位、浮动、视频音频播放)
前端·学习·音视频
~无忧花开~7 小时前
React状态管理完全指南
开发语言·前端·javascript·react.js·前端框架
LegendNoTitle8 小时前
计算机三级等级考试 网络技术 选择题考点详细梳理
服务器·前端·经验分享·笔记·php
@大迁世界8 小时前
1.什么是 ReactJS?
前端·javascript·react.js·前端框架·ecmascript
BJ-Giser9 小时前
Cesium 基于EZ-Tree的植被效果
前端·可视化·cesium
钛态9 小时前
Flutter 三方库 http_mock_adapter — 赋能鸿蒙应用开发的高效率网络接口 Mock 与自动化测试注入引擎(适配鸿蒙 HarmonyOS Next ohos)
android·网络协议·flutter·http·华为·中间件·harmonyos
王码码20359 小时前
Flutter for OpenHarmony:Flutter 三方库 algoliasearch 毫秒级云端搜索体验(云原生搜索引擎)
android·前端·git·flutter·搜索引擎·云原生·harmonyos