HarmonyOS第八章:HTTP数据请求

devtools/2024/9/23 17:55:43/
http://www.w3.org/2000/svg" style="display: none;">

🎉 博客主页:【剑九_六千里-CSDN博客】【剑九_六千里-掘金社区】
🎨 上一篇文章:【HarmonyOS第七章:应用状态共享(PersistentStorage、LocalStorage、AppStorage)】
🎠 系列专栏:【HarmonyOS系列】
💖 感谢大家点赞👍收藏⭐评论✍

https://i-blog.csdnimg.cn/direct/719b10462b93461c97ff332a6f6ad4d2.gif#pic_center" alt="在这里插入图片描述" />

https://img-blog.csdnimg.cn/direct/694b2f438180439d867fee142bf86879.gif#pic_center" alt="在这里插入图片描述" />

文章目录

  • 1. http 介绍
    • 1.1. http 基本概念
    • 1.2. http 提供的接口
    • 1.3. request接口开发步骤
  • 2. 基本使用
    • 2.1. 配置HTTP使用权限
    • 2.2. 导入 http 模块
    • 2.3. 页面中使用

http__16">1. http 介绍

http__17">1.1. http 基本概念

HTTP数据请求功能主要由http模块提供。

使用该功能需要申请ohos.permission.INTERNET权限。

权限申请请参考访问控制(权限)开发指导。

http__24">1.2. http 提供的接口

涉及的接口如下表:

https://i-blog.csdnimg.cn/direct/23f6cf59f1ec4ea699be138fc9bfcf11.png" alt="在这里插入图片描述" />

1.3. request接口开发步骤

  1. @ohos.net.http中导入http命名空间。
  2. 调用createHttp()方法,创建一个HttpRequest对象。
  3. 调用该对象的on()方法,订阅http响应头事件,此接口会比request请求先返回。可以根据业务需要订阅此消息
  4. 调用该对象的request()方法,传入http请求的url地址和可选参数,发起网络请求。
  5. 按照实际业务需要,解析返回结果。
  6. 调用该对象的off()方法,取消订阅http响应头事件。
  7. 当该请求使用完毕时,调用destroy()方法主动销毁。
// 引入包名
import http from '@ohos.net.http';
import { BusinessError } from '@ohos.base';// 每一个httpRequest对应一个HTTP请求任务,不可复用
let httpRequest = http.createHttp();
// 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
// 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 
httpRequest.on('headersReceive', (header) => {console.info('header: ' + JSON.stringify(header));
});
httpRequest.request(// 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定"EXAMPLE_URL",{method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET// 开发者根据自身业务需要添加header字段header: {'Content-Type': 'application/json'},// 当使用POST请求时此字段用于传递请求体内容,具体格式与服务端协商确定extraData: "data to send",expectDataType: http.HttpDataType.STRING, // 可选,指定返回数据的类型usingCache: true, // 可选,默认为truepriority: 1, // 可选,默认为1connectTimeout: 60000, // 可选,默认为60000msreadTimeout: 60000, // 可选,默认为60000msusingProtocol: http.HttpProtocol.HTTP1_1, // 可选,协议类型默认值由系统自动指定usingProxy: false, // 可选,默认不使用网络代理,自API 10开始支持该属性}, (err: BusinessError, data: http.HttpResponse) => {if (!err) {// data.result为HTTP响应内容,可根据业务需要进行解析console.info('Result:' + JSON.stringify(data.result));console.info('code:' + JSON.stringify(data.responseCode));// data.header为HTTP响应头,可根据业务需要进行解析console.info('header:' + JSON.stringify(data.header));console.info('cookies:' + JSON.stringify(data.cookies)); // 8+// 当该请求使用完毕时,调用destroy方法主动销毁httpRequest.destroy();} else {console.error('error:' + JSON.stringify(err));// 取消订阅HTTP响应头事件httpRequest.off('headersReceive');// 当该请求使用完毕时,调用destroy方法主动销毁httpRequest.destroy();}}
);

2. 基本使用

2.1. 配置HTTP使用权限

entry/src/main/module.json5

https://i-blog.csdnimg.cn/direct/c4a721119cc6443c8a52205d277c6fae.png" alt="在这里插入图片描述" />

http__94">2.2. 导入 http 模块

import http from '@ohos.net.http'

2.3. 页面中使用

https://i-blog.csdnimg.cn/direct/cd41a48cc5784e9b97199680130e22ac.png" alt="在这里插入图片描述" />

import http from '@ohos.net.http'@Entry
@Component
struct Index {@State data: http.HttpResponse = {result: {},resultType: http.HttpDataType.OBJECT,responseCode: 200,header: "",cookies: '',performanceTiming: {dnsTiming: 0,tcpTiming: 0,tlsTiming: 0,firstSendTiming: 0,firstReceiveTiming: 0,totalFinishTiming: 0,redirectTiming: 0,responseHeaderTiming: 0,responseBodyTiming: 0,totalTiming: 0},};async getData() {const httpRequest = http.createHttp();let res = await httpRequest.request(// 请求地址"http://backend-api-01.newbee.ltd/api/v1/index-infos",{// 请求头header: {"Content-Type": "application/json"},// 请求方法,默认 http.RequestMethod.GETmethod: http.RequestMethod.GET,// 指定返回数据的类型expectDataType:http.HttpDataType.OBJECT})console.log(`${JSON.stringify(res.result)}`, 'res');this.data = res;}build() {Column() {Text(`${JSON.stringify(this.data.result)}`)Button("获取数据").onClick(() => {this.getData();})}.width("100%").height("100%")}
}

http://www.ppmy.cn/devtools/116108.html

相关文章

CPLEX+Yalmip+MATLAB2022a配置

来源:yalmipcplex12.10文件及安装教程-CSDN博客https://blog.csdn.net/qq_41944352/article/details/126421198 安装包 来源:yalmipcplex12.10文件及安装教程-CSDN博客 Cplex 需下载: Microsoft Visual C 2015 Redistributable 添加路径&a…

住宅代理IP如何提高 IP声誉?

你有没有遇到过类似的问题?发送的邮件被标记为垃圾邮件并被屏蔽、访问某些网站被拒绝、广告效果不理想,甚至网上交易无缘无故被拒绝?这到底是什么原因造成的?其实,这些问题可能都和 IP 信誉息息相关。 如果你的 IP 地址…

Keil5 操作

目录 1.Debug(软件模拟调试:): 2.代码提示设置: 3.添加. c与.h文件: 常用技巧 安装下载推荐:正点原子 1.Debug(软件模拟调试:): 文章讲解 …

aws 容器镜像仓库操作

aws 容器镜像仓库产品叫ECR,官方文档参考:Amazon Elastic Container Registry。 1)账号认证 # 配置aws命令 $ aws configure set aws_access_key_id ${ak} $ aws configure set aws_secret_access_key ${sk} 2)镜像仓库登陆 #…

C#基础(14)冒泡排序

前言 其实到上一节结构体我们就已经将c#的基础知识点大概讲完,接下来我们会讲解一些关于算法相关的东西。 我们一样来问一下gpt吧: Q:解释算法 A: 算法是一组有序的逻辑步骤,用于解决特定问题或执行特定任务。它可以是一个计算过程、一个…

001.docker30分钟速通版

docker简介 docker就是一个用于构建(build),运行(run),传送(share)应用程序的平台做一个不恰当的类比,就是外卖平台,如果你自己做华莱士不一定好吃&#xff0…

变脸大师:基于OpenCV与Dlib的人脸换脸技术实现

目录 简介 重新简介 思路解析 1. 加载人脸检测器和特征点预测模型 2. 读取两张人脸图片 3. 获取人脸的特征点 4. 使用Delaunay三角剖分 5. 仿射变换三角形 6. 三角形变形并复制 7. 脸部轮廓掩模 8. 无缝克隆换脸 9. 缩放图像 10. 显示换脸结果 整体代码 效果展…

王守义都说的十三香,销量直至今年依旧能打——苹果13系列的SoC芯片A15和射频收发芯片高通SDR868

浅谈人工智能技术,对社会经济变革的思考 苹果iPhone 16系列已经开放购买了,小伙伴们的钱包准备好了吗?平台君打开银行卡看了一眼,觉得iPhone 13还是很香的,也还能再战几年。 想当年iPhone 13系列发布的时候,网络流传一句话-王守义都说十三香啊。具体“香”在哪里?数据说…