鸿蒙(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。
相关推荐
youtootech1 分钟前
HarmonyOS《柚兔学伴》项目实战12-Lottie 动画集成
华为·harmonyos
l1340620823511 分钟前
HarmonyOS应用开发实战:小事记 - 多媒体文件上传:@ohos.net.http 的 multipart/form-data 请求构造
后端·华为·harmonyos·鸿蒙系统
youtootech12 分钟前
HarmonyOS《柚兔学伴》项目实战16-录音功能与权限管理
华为·harmonyos
xd18557855538 分钟前
睡眠质量评估 —— 鸿蒙AI智能助手开发全流程解析
人工智能·华为·harmonyos·鸿蒙
Jcc44 分钟前
鸿蒙 Navigation 模块化实践
harmonyos
woshihuanglaoshi1 小时前
参数验证_Flutter在鸿蒙平台确保路由参数类型安全
学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
绝世番茄1 小时前
鸿蒙原生 ArkTS 布局之 List 的单选与多选模式实战指南
华为·list·harmonyos·鸿蒙
胡琦博客1 小时前
HarmonyOS 智能工具箱(三):语音交互工具
交互·xcode·harmonyos
国服第二切图仔2 小时前
HarmonyOS7新特性之沉浸光感:新一代材质渲染技术解析
harmonyos
●VON2 小时前
鸿蒙 PC Markdown 编辑器链接补全与离线校验:中文路径、标题锚点与授权边界
华为·编辑器·harmonyos·鸿蒙