鸿蒙(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 7 Agent 开发实战 11:并发多会话隔离
华为·harmonyos
flash俊杰9 小时前
给工具调用划安全红线:SSRF 防护、逐跳复检与沙箱取舍
http
行者-全栈开发9 小时前
【共创稿事节】HarmonyOS 7 空间音频实战:用 AudioSpatializationManager 构建“听得见方位“的声场
harmonyos·arkts·鸿蒙·空间音频·api 26·audio kit
马剑威(威哥爱编程)10 小时前
【共创稿事节】HarmonyOS 7 Agent 开发实战 03:Tool Calling 让 AI 查实时订单与库存
华为·harmonyos
倔强的石头10612 小时前
把 Typst 搬上开源鸿蒙 PC:一次“干净”的移植记录
华为·开源·harmonyos
梦想不只是梦与想14 小时前
鸿蒙 预览数据模拟:Hamock
harmonyos·模拟数据·hamock
是2的10次方啊14 小时前
超时了,然后呢?——聊聊 HTTP / Dubbo 超时后,客户端、服务端与 C 端用户的真实感受
http·dubbo
尘一不染14 小时前
多模型 API 接入实战(一):从一次 HTTP 请求到可维护的适配层
网络·人工智能·网络协议·http
程序员夏洛17 小时前
TCP 是用来解决什么问题?
java·网络协议·http·https
贾伟康17 小时前
【化学实验室|04】HarmonyOS ArkTS 场景选择器实战:让 13 个离线实验的入口、筛选和返回路径保持一致
harmonyos·arkts·canvas·arkui·化学实验