HarmonyOS HTTP 网络请求:@ohos.net.http
适用版本HarmonyOS 6.1API 12及以上验证环境Pura 90 Pro 模拟器HarmonyOS 6.1.1API 24关键概念http.createHttp、request、RequestMethod、responseCode、destroy前言ohos.net.http是 HarmonyOS 官方 HTTP 客户端模块支持 GET/POST/PUT/DELETE、自定义请求头、超时配置、Cookie 处理。本文演示 GET 和 POST 请求的完整写法以及错误处理和资源释放。一、发起 GET 请求import http from ohos.net.http async function doGet(): Promisestring { const client http.createHttp() try { const resp await client.request( https://api.example.com/users/1, { method: http.RequestMethod.GET, header: { Accept: application/json, Authorization: Bearer ${token} }, readTimeout: 5000, // 读取超时毫秒 connectTimeout: 5000 // 连接超时毫秒 } ) if (resp.responseCode 200) { return resp.result as string // 响应体字符串 } else { throw new Error(HTTP ${resp.responseCode}) } } finally { client.destroy() // 必须调用释放底层资源 } }二、发起 POST 请求JSON 体async function doPost(): Promisestring { const client http.createHttp() const body JSON.stringify({ title: HarmonyOS 6.1, content: 新特性介绍, userId: 42 }) try { const resp await client.request( https://api.example.com/posts, { method: http.RequestMethod.POST, header: { Content-Type: application/json, Accept: application/json }, extraData: body, // POST body字符串或 ArrayBuffer readTimeout: 8000, connectTimeout: 8000 } ) if (resp.responseCode 200 resp.responseCode 300) { return resp.result as string } throw new Error(请求失败: HTTP ${resp.responseCode}) } catch (e) { throw new Error(网络错误: ${(e as Error).message}) } finally { client.destroy() } }三、响应对象字段// resp: http.HttpResponse resp.responseCode // HTTP 状态码200、404 等 resp.result // 响应体string | ArrayBuffer resp.header // 响应头Recordstring, string resp.cookies // Set-Cookie 值 resp.performanceTiming // 各阶段耗时DNS、TCP、首字节等四、RequestMethod 枚举http.RequestMethod.GET http.RequestMethod.POST http.RequestMethod.PUT http.RequestMethod.DELETE http.RequestMethod.PATCH http.RequestMethod.OPTIONS http.RequestMethod.HEAD五、错误处理与重试async function fetchWithRetry(url: string, maxRetry: number): Promisestring { let lastError for (let i 0; i maxRetry; i) { const client http.createHttp() try { const resp await client.request(url, { method: http.RequestMethod.GET, readTimeout: 5000, connectTimeout: 5000 }) if (resp.responseCode 200) { return resp.result as string } lastError HTTP ${resp.responseCode} } catch (e) { lastError (e as Error).message } finally { client.destroy() } // 指数退避1s、2s、4s if (i maxRetry - 1) { await new Promisevoid(resolve setTimeout(resolve, 1000 * Math.pow(2, i))) } } throw new Error(重试 ${maxRetry} 次后失败: ${lastError}) }六、配置网络权限在entry/src/main/module.json5中添加权限{ module: { requestPermissions: [ { name: ohos.permission.INTERNET } ] } }模拟器运行截图初始状态GET 请求完成点击「GET 请求」后向httpbin.org/get发起真实 HTTP 请求显示响应状态码200、耗时毫秒和响应体预览。实测结果请求URL状态码耗时GEThttpbin.org/get200~300-800msPOSTjsonplaceholder.typicode.com/posts201~200-500ms常见问题Q为什么请求失败报connect ECONNREFUSEDA检查模拟器的网络连接。在真机和模拟器上HTTP 请求需要 Wi-Fi 或蜂窝数据且必须在module.json5中声明ohos.permission.INTERNET权限。Q如何请求 HTTPS如何处理自签名证书Aohos.net.http默认支持 HTTPS会验证 CA 证书。自签名证书需要配置sslCertPath客户端证书或caPathCA 证书文件路径。开发阶段可以使用skipSSLVerification: true仅 debug 包。Q如何上传文件multipart/form-dataA设置Content-Type: multipart/form-data; boundaryxxx并手动构建 multipart 体或使用ohos.request.uploadFile模块专为文件上传优化。上一篇动画与过渡效果下一篇数据持久化Preferences

相关新闻

HarmonyOS 动画与过渡效果:animateTo 与 transition

HarmonyOS 动画与过渡效果:animateTo 与 transition

适用版本:HarmonyOS 6.1(API 12)及以上 验证环境:Pura 90 Pro 模拟器(HarmonyOS 6.1.1,API 24) 关键概念:animateTo、transition、Curve、.animation()、TransitionType 前言 ArkUI…

2026/7/18 2:06:38 阅读更多 →
深圳地铁车辆编码解析:从02A2406株262车看运营技术体系

深圳地铁车辆编码解析:从02A2406株262车看运营技术体系

最近在深圳乘坐地铁2号线时,你是否遇到过这样的情况:列车从黄贝岭站出发后,车厢显示屏突然出现"02A2406株262车"这样的神秘代码?不少乘客看到这一串数字字母组合都会感到困惑——这到底是车辆故障提示、线路调度信息&am…

2026/7/18 2:06:38 阅读更多 →
OpenClaw大模型开发框架解析与实战指南

OpenClaw大模型开发框架解析与实战指南

1. OpenClaw大模型技术解析OpenClaw作为当前最受关注的大模型智能体开发框架,其核心价值在于实现了多智能体系统的模块化封装和任务自动化编排。这个由ClawTeam团队开发的平台本质上是一个基于Transformer架构的分布式任务处理系统,通过创新的Agent Swar…

2026/7/18 2:06:38 阅读更多 →

最新新闻

AI+Python金融量化交易实战:10天构建完整交易系统

AI+Python金融量化交易实战:10天构建完整交易系统

如果你正在寻找一个能真正带你入门的AIPython金融量化教程,那么这篇文章就是为你准备的。很多教程要么过于理论化,要么代码复杂到让人望而却步,而本文将用10天的时间,带你从零开始构建一个完整的量化交易系统。为什么2026年还要学…

2026/7/19 2:02:32 阅读更多 →
浏览器User-Agent解析与应用全指南

浏览器User-Agent解析与应用全指南

1. 浏览器User-Agent的起源与演变User-Agent这个看似简单的字符串,背后却承载着互联网发展史的缩影。最早可以追溯到1993年NCSA Mosaic浏览器时代,当时的User-Agent格式极其简单,仅包含"Mosaic/0.9"这样的基础信息。随着网景浏览器…

2026/7/19 2:02:32 阅读更多 →
C#实现邮件发送功能全解析与实战技巧

C#实现邮件发送功能全解析与实战技巧

1. 为什么选择C#实现邮件发送功能?在众多编程语言中,C#因其强大的类库支持和简洁的语法特性,成为实现邮件发送功能的理想选择。.NET Framework自带的System.Net.Mail命名空间提供了完整的SMTP协议实现,开发者无需处理底层网络通信…

2026/7/19 2:02:32 阅读更多 →
基于咳嗽声谱的新冠早期筛查声学特征提取方法

基于咳嗽声谱的新冠早期筛查声学特征提取方法

1. 项目概述:当咳嗽声成为诊断线索——我们为什么认真听新冠患者的呼吸音你有没有注意过,自己感冒时的咳嗽和平时不太一样?声音更闷、带点湿漉漉的杂音,或者呼气时有轻微的“嘶嘶”声?这些细微差异,在普通人…

2026/7/19 2:02:32 阅读更多 →
Unity 2D像素游戏动画与碰撞器错位问题:从原理到实战的完整解决方案

Unity 2D像素游戏动画与碰撞器错位问题:从原理到实战的完整解决方案

1. 项目概述:像素游戏动画与碰撞的永恒难题做2D像素游戏,尤其是动作类、平台跳跃类,最让人头疼的问题之一,莫过于“动画归动画,碰撞归碰撞”。你精心绘制了一个角色挥剑的动画,帧数流畅,打击感十…

2026/7/19 2:02:32 阅读更多 →
MCP协议:AI系统间轻量级通信契约与上下文交换标准

MCP协议:AI系统间轻量级通信契约与上下文交换标准

1. 项目概述:MCP不是新模型,而是AI系统间的“通用电源接口”你有没有遇到过这样的场景:团队刚花三个月训好一个行业垂类大模型,结果对接内部CRM系统时卡在API鉴权环节;或者采购了某家厂商的智能客服引擎,想…

2026/7/19 2:01:31 阅读更多 →

日新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

月新闻