零基础学鸿蒙开发--第九篇--网络请求
12. ⽹络请求
{
"module": {
......
"requestPermissions": [
{
"name": 'ohos.permission.******'
}
]
}
}
第⼆步:申请授权
-
如果⽬标权限的授权⽅式为system_grant,开发者在完成第⼀步后,系统会在安装应⽤时⾃动为其进⾏权限预授予,开发者不需要做其他操作即可使⽤权限。
-
如果⽬标权限的授权⽅式为是user_grant,开发者在完成第⼀步后,还需要在应⽤运⾏时弹窗请求⽤户授权,具体操作可参考官⽅⽂档
由于⽹络访问权限的授权⽅式为system_grant,因此只需完成第⼀步即可,具体内容如下
{
"module": {
......
"requestPermissions": [
{
"name": 'ohos.permission.INTERNET'
}
]
}
}
12.2. 安装axios库
ohpm i @ohos/axios
import axios from '@ohos/axios'
const instance = axios.create({
baseURL: 'http://<ip>:<port>',
timeout: 2000
})
第三步:发送http请求
创建axios实例后,便可通过该实例的api来发送各种http请求,常⽤的api定义如下
api | 功能 |
get(url, config?): Promise | 发送GET请求 |
delete(url, config?): Promise | 发送DELETE请求 |
post(url,data?,config?): Promise | 发送POST请求 |
put(url,data?,config?): Promise | 发送PUT请求 |
第四步:获取请求结果
上述api的返回值类型均为Promise,Promise是JavaScript中⽤于表示异步操作结果的对象,若操作成功,其中会包含具体结果,若操作失败,其会包含错误的原因。在实际应⽤中,开发者可以通过该对象的then()⽅法来处理操作成功时的结果,通过catch()⽅法来处理操作失败的情况,例如
get(...)
.then((response:AxiosResponse)=>{
//处理请求成功的结果
...
})
.catch((error:AxiosError)=>{
//处理请求失败的错误
...
})
AxiosResponse是axios定义的响应结果类型,默认情况下,通过axios发送的所有请求,其成功的响应结果都是该类型。其包含的属性如下
{
//服务器返回的响应结果
data: {},
//服务器响应的 HTTP 状态码
status: 200,
//服务器响应的 HTTP 状态信息
statusText: 'OK',
// 服务器响应头
headers: {},
//axios请求的配置信息
config: {},
//⽣成此响应的请求信息
request: {}
}
get(...)
.then((response:AxiosResponse)=>{
//获取服务器返回的数据
let data = response.data;
//处理服务器返回的数据
...
})
.catch((error:AxiosError)=>{
//处理请求失败的错误
...
})
// 添加请求拦截器
instance.interceptors.request.use((config:InternalAxiosRequestConfig) => {
// 对请求数据做点什么
return config;
}, (error:AxiosError) => {
// 对请求错误做些什么
return Promise.reject(error);
});
// 添加响应拦截器
instance.interceptors.response.use((response:AxiosResponse)=> {
// 对响应数据做点什么
return response;
}, (error:AxiosError)=> {
// 对响应错误做点什么
return Promise.reject(error);
});
最后,如果这篇文章对你有所帮助请 “点赞 收藏+关注” ,感谢支持!祝您编码愉快
原文地址:https://blog.csdn.net/w807139809/article/details/144206691
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!