HarmonyOS 发送http网络请求

好 本文 我们来说 http请求

首先 我们要操作网络内容 需要申请权限
项目中找到 main目录下的module.json5

最下面加上

"requestPermissions": [{"name": "ohos.permission.INTERNET"}
]

在这里插入图片描述
这里 我在本地写了一个get接口 大家可以想办法 弄一个后端接口
在这里插入图片描述
首先 我们编写一个组件雏形

import http from '@ohos.net.http'
@Entry
@Component
struct Index {aboutToAppear() {let httpReq = http.createHttp();httpReq.request("http://localhost/books",{},(err,data)=>{})}build() {Column({space: 30}) {}.width('100%').height('100%')}
}

我们导入 @ohos.net.http
然后 通过 createHttp 获取一个http对象
然后通过对象调用 request
这就是发送请求的函数

我们选择在 aboutToAppear 组件准备加载时触发的生命周期函数中执行请求逻辑

request有三个参数
第一个是 url 路径参数 这里 我们写了接口路径 http://localhost/books
第二个参数 是一个jons对象 配置 请求参数
第三个参数 是请求返回后的回调函数 方法接受两个行参 第一个 err 错误信息 只有请求出错时才会有内容 然后 第二个 是data 就是返回的数据内容

然后 我们还要设置请求类型
我们只需要在第二个json中 打出

method: http.RequestMethod.

它就会提示我们有哪些内容
在这里插入图片描述
我们选择get
在这里插入图片描述
如果是 post 传参字段是 extraData
在这里插入图片描述
get的话 直接跟在地址栏后面 问号就好了

header 可以设置请求头信息
在这里插入图片描述
我们最后可以编写代码如下

import http from '@ohos.net.http'
@Entry
@Component
struct Index {aboutToAppear() {let httpReq = http.createHttp();httpReq.request("http://localhost/books",{method: http.RequestMethod.GET},(err,data)=>{if(!err) {let jsonString = JSON.stringify(data.result);console.log(jsonString);}})}build() {Column({space: 30}) {}.width('100%').height('100%')}
}

这里 主要是 request 回到内容的改动
首先 我们拿 err 取反 因为只有失败请求 才会有err
那么 没有 则表示请求成功了 我们继续往下走进if判断
然后 我们将 data 下的 result 拿到 这就是 请求回来的数据对象
但是 因为 harmonyos中的console.log 是只支持 字符串输出的 所以 我们通过 JSON.stringify将 data.result 转成字符串 然后输出在控制台上

运行结果如下
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/423143.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RK3568平台 TinyAlsa集成第三方音频算法

一.tinyalsa介绍 ALSA(Advanced Linux Sound Architecture)是一个开源项目,涵盖了用户空间和内核空间对音频设备的操作接口,通过应用层使用alsalib可以实现对音频设备的控制 TinyAlsa是android推出的一个精简的ALSA库&#xff0c…

R语言批量把数值变量和因子变量的互转

#我们以rms包的lung数据集为例 library(rms) data<-lung #这里有两种方法&#xff0c; #第1是知道需要转化的变量在哪几列&#xff1b; #第2知道需要转化的变量名 str(data) #假设我们想转化inst/status/sex/三个变量的类型 #图1先看看变量类型和处于第几列 str(dat…

[笔记]深度学习入门 基于Python的理论与实现(五)

5. 误差反向传播法 上一节介绍了神经网络的学习&#xff0c;并通过数值微分计算了神经网络的权重参数的梯度&#xff08;严格地说&#xff0c;是损失函数关于权重参数的梯度&#xff09;。数值微分简单、容易实现&#xff0c;但是计算很费时间。 我们将介绍误差反向传播法&…

Cyber RT 服务通信

场景&#xff1a; 用户乘坐无人出租车过程中&#xff0c;可能临时需要切换目的地&#xff0c;用户可以通过车机系统完成修改&#xff0c;路径规划模块需要根据新的目的地信息重新规划路径&#xff0c;并反馈修正后的结果给用户&#xff0c;那么用户的修正请求数据与修正结果是如…

gradle打包分离依赖jar

正常打包的jar是包含项目所依赖的jar包资源&#xff0c;而且大多数场景下的依赖资源是不会频繁的变更的&#xff0c;所以实际把项目自身jar和其所依赖的资源分离可以实现jar包瘦身&#xff0c;减小上传的jar包总大小&#xff0c;能实现加速部署的效果 一 原本结构 二 配置buil…

C# 控制台进度条

最简单 namespace ProcessStu01 {internal class Program{static void Main(string[] args){for (int i 1; i < 100; i){Console.Write("\r{0,3}%",i);Thread.Sleep(50);}}} }第三方库 https://github.com/Mpdreamz/shellprogressbar using ShellProgressBar…

JVM-透彻理解字节码以及指令

一、字节码与指令概述 package ch13_bytecode;public class HelloWorld {public static void main(String[] args) {System.out.println("hello world");} }生成字节码&#xff1a; cafe babe 0000 0031 0022 0a00 0600 1409 0015 0016 0800 170a 0018 0019 0700 1a…

适用于电动汽车充电站箱变的电气安全物联监测系统设计方案——安科瑞赵嘉敏

摘 要&#xff1a; 基于物联网技术架构提出了一种适用于电动汽车充电站箱变的电气安全物联监测系统设计方案。该系统由 电气安全智能感知设备、通信网关、电气安全物联网监测平台等构成&#xff0c;可支持充电站箱变充电桩出线回路电流、电缆 温度、剩余电流、故障电弧、短路…

PostgreSQL教程--实现类似于MySQL的show create table功能

背景 在MySQL数据库中&#xff0c;可以通过show create table查询表的create sql 语句&#xff0c; 但在PostgreSQL数据库中&#xff0c;没有类似的命令&#xff0c;但可以通过function 来实现 1、show create table函数 CREATE OR REPLACE FUNCTION "public".&qu…

MySQL--删除数据库(2)

使用普通用户登陆 MySQL 服务器&#xff0c;你可能需要特定的权限来创建或者删除 MySQL 数据库&#xff0c;所以我们这边使用 root 用户登录&#xff0c;root 用户拥有最高权限。 在删除数据库过程中&#xff0c;务必要十分谨慎&#xff0c;因为在执行删除命令后&#xff0c;所…

JAVA 学习 面试(四)垃圾回收篇

Java中的每个对象都经历了创建、使用和最终被回收的过程。从对象实例化开始&#xff0c;它可能被程序的多个部分引用&#xff0c;直到最后一个引用消失&#xff0c;对象成为垃圾&#xff0c;等待回收。 JVM垃圾查找算法 &#xff08;1&#xff09;引用计数法&#xff1a;已淘…

(十一)Head first design patterns状态模式(c++)

状态模式 如何去描述状态机&#xff1f; 假设你需要实例化一台电梯&#xff0c;并模仿出电梯的四个状态&#xff1a;开启、关闭、运行、停止。也许你会这么写 class ILift{ public:virtual void open(){}virtual void close(){}virtual void run(){}virtual void stop(){} }…