首页 > 其他分享 >HarmonyOS:使用HTTP访问网络

HarmonyOS:使用HTTP访问网络

时间:2024-12-07 22:59:46浏览次数:5  
标签:httpRequest HTTP 请求 header 访问 HarmonyOS JSON http data

HTTP
在这里插入图片描述

一、导入http模块

module.json5里添加网络权限
在这里插入图片描述

导入http模块
在这里插入图片描述

二、创建http请求

创建http请求
在这里插入图片描述

import { http } from '@kit.NetworkKit'


function getNetData() {
  // 创建数据请求对象
  let httpRequest = http.createHttp()
}

三、发起请求

在这里插入图片描述

请求方法
在这里插入图片描述

四、请求示例

GET请求
在这里插入图片描述

POST请求
在这里插入图片描述

在这里插入图片描述

五、处理响应

在这里插入图片描述

ResponseCode状态码
在这里插入图片描述

六、销毁http

在这里插入图片描述

七、 获取鸿蒙专栏网络数据

效果图
在这里插入图片描述

testHttp01.ets代码

import { http } from '@kit.NetworkKit'
import { BusinessError } from '@kit.BasicServicesKit';
import { JSON } from '@kit.ArkTS';

/**
 * 获取 鸿蒙专栏
 * @returns
 */
function getHarmonySpecialColumn(): string {
  let jsonData = ""
  // 创建数据请求对象
  // 每一个httpRequest对应一个HTTP请求任务,不可复用
  let httpRequest = http.createHttp()

  // 用于订阅HTTP响应头,此接口会比request请求先返回。可以根据业务需要订阅此消息
  // 从API 8开始,使用on('headersReceive', Callback)替代on('headerReceive', AsyncCallback)。 8+
  httpRequest.on('headersReceive', (header) => {
    console.info('header: ' + JSON.stringify(header));
  });

  // 开发API https://www.wanandroid.com/blog/show/2
  let baseUrl = "https://www.wanandroid.com/"
  //鸿蒙专栏
  const harmonyJson = "harmony/index/json"

  httpRequest.request(`${baseUrl}${harmonyJson}`, {
    method: http.RequestMethod.GET,
    header: {
      'Content-Type': 'application/json'
    },
    connectTimeout: 60000, // 可选,默认为60000ms
    readTimeout: 60000, // 可选,默认为60000ms
  }, (err: BusinessError, data: http.HttpResponse) => {
    if (err) {
      console.error('error:' + JSON.stringify(err));
      httpRequest.destroy()
    } else {
      jsonData = JSON.stringify(data.result)
      // data.result为HTTP响应内容,可根据业务需要进行解析
      console.info('Result jsonData :' + jsonData);
      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();
    }
  })

  return jsonData
}

@Entry
@Component
struct TestHttp01 {
  @State message: string = '鸿蒙专栏';

  build() {
    Column() {
      Button("获取鸿蒙专栏")
        .fontColor(Color.Black)
        .fontSize(20)
        .margin({ top: 20 })
        .fontWeight(FontWeight.Medium)
        .onClick((event) => {
          getHarmonySpecialColumn()
        })

    }
    .height('100%')
    .width('100%')
  }
}

标签:httpRequest,HTTP,请求,header,访问,HarmonyOS,JSON,http,data
From: https://blog.csdn.net/ChinaDragon10/article/details/144226965

相关文章

  • Http数据包
    附:完整笔记目录~ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正!5.1Http数据包引子:上文说过,网络间大都靠数据包进行通信,而在应用层中被使用最多的数据包则为Http数据包,在第二章曾介绍了如何借助工具对Http数据包进行拦截。本篇则对Http数据包格式、内容等进行总结。......
  • 关于HarmonyOS NEXT中的模块化开发
    今天不写页面和动画,斗胆给大家讲一讲软件工程。软件工程讲究高内聚低耦合,意思就是把整个工程按照分工不同分成不同的模块,每一个模块紧密联系又互不影响。就像一座摩天大楼,它里面的电路网非常庞大和复杂,它们每一层楼每一个房间都能独立运行且互不影响,所有的房间电路都通过一个总开......
  • 解决.NET中调用第三方HTTP API时的超时与断开问题
    在.NET中调用第三方HTTPAPI时,可能会遇到超时和断开连接等问题,这些问题可能是由于网络延迟、第三方服务响应慢、服务器负载高等原因引起的。解决这些问题通常涉及以下几个方面:调整HTTP请求的超时设置、增强异常处理、使用重试机制、优化请求的资源管理等。以下是一些常见的解......
  • Vue3 可访问性问题
    Vue3可访问性问题及解决方案引言随着前端技术的不断发展,用户体验已经成为衡量一个网站或应用成功与否的关键因素之一。尤其是在当今多元化的互联网环境中,确保所有用户都能访问和使用你的应用变得越来越重要。可访问性(Accessibility,简称A11Y)是指为所有人群(包括老年人、......
  • 使用 ASP.NET Core HttpLoggingMiddleware 记录 http 请求/响应
            我们发布了一个应用程序,该应用程序运行在一个相当隐蔽的WAF后面。他们向我们保证,他们的产品不会以任何方式干扰我们的应用程序。这是错误的。他们删除了我们几乎所有的“自定义”标头。为了“证明”这一点,我构建了一个中间件,用于存储我们收到和发送的所有唯......
  • HarmonyOS学习:项目进度列表实战
    示例图一、布局单位在我们布局中,经常会采用px来作为布局的一个尺寸参考单位,这个单位在浏览器中已经是布局的标准。在鸿蒙开发中,提出了一些新的单位用于布局。物理像素:一般用px来表示。逻辑像素:在布局的时候,底层针对物理像素和屏幕的尺寸关系进行了转化的中间层。分辨率:......
  • HarmonyOS学习Day03
    #学习视频:bilibili蜗牛学苑#一、ArkTS实战ArkTS主要负责页面上数据维护、交互、以及基础属性的使用。ArkUI负责页面的布局。ArkTS负责对组件的数据、事件等等进行维护组件的参数在使用ArkUI进行布局的时候,组件采用括号的方式来引入使用Column(参数){//存放子元素}......
  • HarmonyOS学习Day02
    #学习视频:bilibili蜗牛学苑#Day02一、ArkTS介绍基本概念JS:前端浏览器端语言,弱类型语言,灵活,功能强大TS:TS是JS的一个超集,支持ES6标准(ES6教程)。TS由微软开发的自由和开源的编程语言,在JS的基础上增加了静态类型检查的超集。TS设计目标是开发大型应用,它可以编译成纯Java......
  • gofiber: 访问url路径为空时默认访问的地址
    一,代码:funcSetupRoutes(viewEngine*html.Engine)*fiber.App{//创建Fiber应用app:=fiber.New(fiber.Config{Views:viewEngine,})app.Use(recover.New()) //文章模块 articleController:=controller.NewArticleController() articl......
  • websocket和http2有什么区别?http2能取代websocket吗?为什么?
    WebSocket和HTTP/2都是现代的网络协议,用于客户端和服务器之间的通信,但它们的设计目标和工作方式不同,因此各有优缺点。HTTP/2不能完全取代WebSocket。主要区别:连接类型:HTTP/2是基于请求-响应的模型,即使是服务器推送,客户端也需要先发起请求。WebSocket则建立一个持久连接,客户......