鸿蒙(HarmonyOS)应用开发——http的使用

在使用app的时候,不可能将所有信息都存储在app中,是需要链接互联网,从服务端获取数据。
请求 响应 应用 服务端

使用HTTP访问网络

HTTP即超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

在ArkTs中我们使用http的流程大致如下:
导入http模块 创建http请求 订阅请求头 发起请求 处理响应

导入http模块

javascript 复制代码
import http from '@ohos.net.http'

除了导入http模块,还需要中module.json5中添加网络访问权限

javascript 复制代码
{
    "module" : {
        "requestPermissions":[
           {
             "name": "ohos.permission.INTERNET"
           }
        ]
    }
}

创建http请求

适应createHttp()创建一个httpRequest对象。

每一个httpRequest对象对应一个http请求任务,不可服用

javascript 复制代码
import http from '@ohos.net.http';
let httpRequest = http.createHttp();

订阅请求头

用于订阅http响应头,此接口会比request请求先返回,可以根据业务需要订阅此消息

javascript 复制代码
import http from '@ohos.net.http';
let httpRequest = http.createHttp();
httpRequest.on('headersReceive', (header) => {
    console.info('header: ' + JSON.stringify(header));
});

发起请求

通过发起请求,向服务器请求数据

http支持的请求方式

方法 说明
OPTIONS HTTP 请求 OPTIONS
GET HTTP 请求 GET
HEAD HTTP 请求 HEAD
POST HTTP 请求 POST
PUT HTTP 请求 PUT
DELETE HTTP 请求 DELETE
TRACE HTTP 请求 TRACE
CONNECT HTTP 请求 CONNECT
  • get 方法
javascript 复制代码
let promise = httpRequest.request("EXAMPLE_URL", {
    method: http.RequestMethod.GET,
    connectTimeout: 60000,
    readTimeout: 60000,
    header: {
        'Content-Type': 'application/json'
    }
});
  • post 方法
javascript 复制代码
let promise = httpRequest.request("EXAMPLE_URL", {
    method: http.RequestMethod.GET,
    connectTimeout: 60000,
    readTimeout: 60000,
    extraData:{
    //	数据部分
	},
    header: {
        'Content-Type': 'application/json'
    }
});

处理响应

javascript 复制代码
let promise = httpRequest.request("EXAMPLE_URL", {
    method: http.RequestMethod.GET,
    connectTimeout: 60000,
    readTimeout: 60000,
    extraData:{
    //	数据部分
	},
    header: {
        'Content-Type': 'application/json'
    }
});
promise.then((res)=>{

})

返回的参数类型是:HttpResponse

HttpResponse 参数

参数 类型 必填 说明
result string \Object \ArrayBuffer8+ 是 Http请求根据响应头中Content-type类型返回对应的响应格式内容:application/json:返回JSON格式的字符串,如需Http响应具体内容,需开发者自行解析;application/octet-stream:ArrayBuffer;其他:string
responseCode ResponseCode \number 是 回调函数执行成功时,此字段为ResponseCode。若执行失败,错误码将会从AsyncCallback中的err字段返回。错误码如下:; 200:通用错误; 202:参数错误; 300:I/O错误
header Object 是 发起http请求返回来的响应头。当前返回的是JSON格式字符串,如需具体字段内容,需开发者自行解析。常见字段及解析方式如下:Content-Type:header'Content-Type';Status-Line:header'Status-Line';Date:header.Date/header'Date';Server:header.Server/header'Server';
cookies8+ Array 是 服务器返回的 cookies。
相关推荐
程序猿追6 小时前
HarmonyOS 6 上做个极简浏览器:Web 组件 + 前进后退 + 加载进度
前端·华为·harmonyos
程序猿追6 小时前
HarmonyOS 6 音视频实战:用 AVPlayer 做一个本地音乐播放器
华为·音视频·harmonyos
威哥爱编程6 小时前
HarmonyOS 7 多设备 UX 自动检测实战:AppAnalyzer 多设备体检 + 一多工程底线,提前拦截截断重叠大图大字
harmonyos
威哥爱编程7 小时前
HarmonyOS 7 安全相机 2.0 实战:数字内容溯源,为拍摄内容提供来源保护
harmonyos
威哥爱编程7 小时前
HarmonyOS 7 弱网优化实战:Network Boost Kit 场景加速 + QUIC 长连接 + 弱网直播优化
harmonyos
威哥爱编程7 小时前
HarmonyOS 7 应用故障智能诊断实战:APMS 故障总览 + Profiler 跨语言泄漏 + Operation Analyzer 冻屏分析
harmonyos
暖风熏人醉7 小时前
Expo 鸿蒙双 SDK 时代:我把适配鸿蒙做成了工程
harmonyos
谢亮_vipxieliang8 小时前
Go net/http 标准库深入——构建生产级 HTTP 服务
http·golang·iphone
张星河zen8 小时前
华为超节点Peerium架构全拆解:Atlas 950、昇腾960、灵衢UnifiedBus
华为·npo·peerium·昇腾960·atlas950·全光互联·灵衢
程序猿追8 小时前
HarmonyOS 6 毛玻璃卡片:背景模糊 + 半透明
华为·harmonyos