使用 @ohos/axios 库来实现网络请求功能
Axios 是一个基于 promise 的网络请求库,可以运行在 node.js 和浏览器中。本库基于 Axios 原库 v1.3.4 版本进行适配,使其可以运行在 OpenHarmony,并沿用其现有用法和特性。
安装 Axios
首先,确保你已经安装了 @ohos/axios 库。如果没有安装,可以使用以下命令进行安装:
bash
ohpm install @ohos/axios
导入 Axios
在你的项目文件中导入 Axios:
typescript
import axios from ‘@ohos/axios’
import { AxiosResponse, AxiosError } from ‘@ohos/axios’
发起 GET 请求
假设你需要从服务器获取用户信息,可以使用以下代码:
typescript
interface UserInfo {
id: number;
name: string;
phone: number;
}
// 向给定 ID 的用户发起请求
axios.get<UserInfo, AxiosResponse, null>(‘/user?ID=12345’)
.then((response: AxiosResponse) => {
// 处理成功情况
console.info("id: " + response.data.id);
console.info(JSON.stringify(response));
})
.catch((error: AxiosError) => {
// 处理错误情况
console.info(JSON.stringify(error));
})
.then(() => {
// 总是会执行
});
// 上述请求也可以按以下方式完成(可选)
axios.get<UserInfo, AxiosResponse, null>(‘/user’, {
params: {
ID: 12345
}
})
.then((response: AxiosResponse) => {
console.info("id: " + response.data.id);
console.info(JSON.stringify(response));
})
.catch((error: AxiosError) => {
console.info(JSON.stringify(error));
})
.then(() => {
// 总是会执行
});
// 支持 async/await 用法
async function getUser() {
try {
const response: AxiosResponse = await axios.get<UserInfo, AxiosResponse, null>(‘/user?ID=12345’);
console.log(JSON.stringify(response));
} catch (error) {
console.error(JSON.stringify(error));
}
}
发送 POST 请求
假设你需要向服务器发送用户信息,可以使用以下代码:
typescript
interface User {
firstName: string;
lastName: string;
}
axios.post<string, AxiosResponse, User>(‘/user’, {
firstName: ‘Fred’,
lastName: ‘Flintstone’
})
.then((response: AxiosResponse) => {
console.info(JSON.stringify(response));
})
.catch((error: AxiosError) => {
console.info(JSON.stringify(error));
});
发起多个并发请求
假设你需要同时获取用户账户和权限信息,可以使用以下代码:
typescript
const getUserAccount = (): Promise<AxiosResponse> => {
return axios.get<string, AxiosResponse, null>(‘/user/12345’);
};
const getUserPermissions = (): Promise<AxiosResponse> => {
return axios.get<string, AxiosResponse, null>(‘/user/12345/permissions’);
};
Promise.all<AxiosResponse>([getUserAccount(), getUserPermissions()])
.then((results: AxiosResponse[]) => {
const acct = results[0].data;
const perm = results[1].data;
console.info("Account: " + acct);
console.info("Permissions: " + perm);
})
.catch((error: AxiosError) => {
console.info(JSON.stringify(error));
});
需要权限
确保你的应用有必要的权限来执行网络请求。你需要在配置文件中添加以下权限:
xml
总结
通过使用 @ohos/axios 库,你可以轻松地在智慧云购App(鸿蒙版)中实现网络请求功能。Axios 提供了灵活的配置选项和强大的功能,允许你发送各种类型的 HTTP 请求,并处理响应数据。希望这些步骤和示例代码能帮助你顺利集成和使用这个库。
更多推荐
所有评论(0)