鸿蒙(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。
相关推荐
见山是山-见水是水4 分钟前
鸿蒙flutter第三方库适配 - JSON格式化工具应用
flutter·华为·json·harmonyos
互联网散修11 分钟前
鸿蒙应用开发UI基础第三十九节:触摸事件与手势交互全解 - 从基础解析到实战演示
交互·harmonyos·手势与触摸
We་ct15 分钟前
EventSource & WebSocket & HTTP
前端·javascript·网络·websocket·网络协议·http·面试
帐篷Li16 分钟前
ONVIF Server 功能完善开发计划
网络·网络协议·http
梁山好汉(Ls_man)20 分钟前
鸿蒙应用如何新建页面
华为·harmonyos·鸿蒙·arkui
想你依然心痛27 分钟前
HarmonyOS 5.0金融科技开发实战:构建硬件级安全数字钱包与分布式智能支付系统
安全·金融·harmonyos
HwJack202 小时前
HarmonyOS UI 开发中的 EventHub:终结“回调地狱”的通信轻骑兵
ui·华为·harmonyos
见山是山-见水是水10 小时前
鸿蒙flutter第三方库适配 - 儿童故事
flutter·华为·harmonyos
2401_8396339111 小时前
鸿蒙flutter第三方库适配 - URL处理应用
flutter·华为·harmonyos
不爱吃糖的程序媛11 小时前
鸿蒙三方库适配README.OpenSource文件解读
harmonyos