基于@ohos/axios的网络请求能力
基于@ohos/axios的网络请求能力
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
基于原生能力的网络状态感知
455浏览 • 1回复 待解决
基于原生能力的网络加载性能分析
688浏览 • 1回复 待解决
基于TLSSocket的通信能力
401浏览 • 1回复 待解决
axios网络功能问题,axios是否会支持网络连接失败的重试机制?
926浏览 • 1回复 待解决
HarmonyOS使用三方库axios发起网络请求,预览支持吗?
273浏览 • 1回复 待解决
基于原生的水印添加能力
687浏览 • 1回复 待解决
基于原生能力的组件封装
381浏览 • 1回复 待解决
HarmonyOS中使用axios进行网络请求配合async的时候会使用多线程吗?
47浏览 • 0回复 待解决
三方件@ohos/axios中发起post请求,如何以queryParams形式传递参数
2258浏览 • 1回复 待解决
基于原生能力的跨应用跳转
761浏览 • 1回复 待解决
基于ArkUI实现类似.9图的拉伸能力
471浏览 • 1回复 待解决
网络请求-GET请求传参
353浏览 • 1回复 待解决
2.1.1版本的axios发post请求会报401
998浏览 • 1回复 待解决
基于原生能力实现图文混排
386浏览 • 1回复 待解决
基于原生能力的设备唯一ID方案
671浏览 • 1回复 待解决
HarmonyOS使用axios进行网络请求,当返回结果中数据含有超长数字时,数字会被科学计数处理
343浏览 • 1回复 待解决
RCP能力实现http网络请求时,设置session配置中关于onDataReceive方法的返回值
252浏览 • 1回复 待解决
HarmonyOS版axios怎么发送mulitpart/form-data请求
348浏览 • 1回复 待解决
网络请求数据后的处理
332浏览 • 1回复 待解决
如何录制带网络请求的trace
214浏览 • 2回复 待解决
获取当前网络连接能力
693浏览 • 1回复 待解决
rcp模块能力发起post请求
1095浏览 • 1回复 待解决
有没有基于socket封装成熟的网络库?
832浏览 • 1回复 待解决
HarmonyOS WebView拦截网络请求
323浏览 • 1回复 待解决
HarmonyOS 请求网络图片
304浏览 • 1回复 待解决
简介
Axios是一个基于promise的网络请求库,可以运行node.js和浏览器中。基于Axios原库v1.3.4GitHub版本进行适配,使其可以运行在OpenHarmony并沿用其现有用法和特性。
下载与安装三方库
需要使用到的权限:ohos.permission.INTERNET。
场景一:使用axios发送常规请求
如:axios.get<T = any, R = AxiosResponse, D = any>(url)
发送一个get请求获取服务器端的JSON字符串
使用axios来获取,performanceTiming计算HTTP请求的各个阶段所花费的时间。
将请求结果显示。
使用axios为服务端的JSON添加data数据这个时候使用POST请求。
axios.post<T = any, R = AxiosResponse, D = any>(url)
T: 是响应数据类型。当发送一个 POST 请求时,客户端可能会收到一个 JSON 对象。T 就是这个 JSON 对象的类型。默认情况下,T 是 any,这意味着可以接收任何类型的数据。
这里可以看到服务器端的data数据上传成功。
错误处理
参考文档:HTTP错误码。
场景二:请求拦截器与响应拦截器的使用
发送一段带配置的请求
请求拦截器
在请求发送前进行必要操作处理,例如设置请求头,获取请求配置或者修改,设置超时时间等,相当于是对每个接口里相同操作的一个封装。
响应体结构
新增performanceTiming的一些属性定义。
响应拦截器
同理,响应拦截器也是如此功能,只是在请求得到响应之后,对响应体的一些处理。
场景三:上传下载文件
上传文件
上传示例
FormData 对象介绍
FormData可以将表单字段的键值对以键值对的方式添加,同时也支持添加文件,在文件上传的场景中,我们可以使用FormData对象来收集表单数据,包括文件和其他文本字段,然后将其发送到后端服务器。
Axios可以通过FormData对象上传文件,在FormData中追加文件,我们需要用POST方法,再配置headers,需要这个浏览器才知道是表单。
这里模拟前后端交互,下方为服务端模拟代码,其实就是一个上传的方法,首先通过MultipartFile接收文件。
下载文件
下载文件时,如果filePath已存在该文件则下载失败,下载之前需要先删除文件。