鸿蒙(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。
相关推荐
sdff113961 小时前
【Flutter】NewsHub跨平台开发:Flutter适配鸿蒙实战教程
flutter·华为·harmonyos
无巧不成书02181 小时前
【开源鸿蒙+Flutter实战】Step One复盘(DAY1-7)|环境闭环+网络请求+列表交互 全避坑(真机验证版)
flutter·开源·harmonyos
tang777891 小时前
一张图看懂 HTTP、SOCKS5 代理的区别
网络·网络协议·http
阿林来了2 小时前
Flutter三方库适配OpenHarmony【flutter_speech】— 项目概述与适配背景
flutter·harmonyos·鸿蒙
HwJack202 小时前
HarmonyOS APP ArkTS开发之ArkUI系统组件
华为·harmonyos
特立独行的猫a5 小时前
Kuikly多端框架(KMP)实战:现代Android/KMP状态管理指南:基于StateFlow与UDF架构的实践
android·架构·harmonyos·状态管理·kmp·stateflow·kuikly
ITUnicorn8 小时前
【HarmonyOS 6】数据可视化:实现热力图时间块展示
华为·harmonyos·arkts·鸿蒙·harmonyos6
雨天行舟9 小时前
abap调用deepseek接口 v3.0
http·ai·sap·abap·聊天·deepseek
小同志009 小时前
网络原理 -KTTP/HTTPS(五) --认识响应“报头“(header) / “正⽂“(body)
java·网络·网络协议·http·https
菜鸟小芯10 小时前
Kuikly-OH 跨平台实战:DAY1 KuiklyUI-OH 从环境搭建到华为云真机部署
harmonyos