前端知识点---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() = 请求失败后的处理,相当于餐厅回复"这道菜卖完了"

相关推荐
张拭心1 小时前
2024 总结,我的停滞与觉醒
android·前端
念九_ysl1 小时前
深入解析Vue3单文件组件:原理、场景与实战
前端·javascript·vue.js
Jenna的海糖1 小时前
vue3如何配置环境和打包
前端·javascript·vue.js
车载测试工程师1 小时前
车载以太网测试-3【Wireshark介绍】
经验分享·功能测试·网络协议·车载系统
星之卡比*1 小时前
前端知识点---库和包的概念
前端·harmonyos·鸿蒙
灵感__idea1 小时前
Vuejs技术内幕:数据响应式之3.x版
前端·vue.js·源码阅读
烛阴1 小时前
JavaScript 构造器进阶:掌握 “new” 的底层原理,写出更优雅的代码!
前端·javascript
Alan-Xia1 小时前
使用jest测试用例之入门篇
前端·javascript·学习·测试用例
浪遏2 小时前
面试官😏 :文本太长,超出部分用省略号 ,怎么搞?我:🤡
前端·面试
昕er2 小时前
CefSharp 文件下载和保存功能-监听前端事件
前端