利用axios框架进行数据传输
5.数据上传到服务器
使用HTTP网络请求上传数据到MYSQL数据库中,并封装HTTP请求
1).在module.json5文件中加入网络权限
文件位置:
position1.png
```
“requestPermissions”:[
{
“name”: “ohos.permission.INTERNET”
}
] ,
```
2).导入http
```
import http from ‘@ohos.net.http’;
```
3).书写http请求
例:post请求:
```
let httpRequest = http.createHttp(); //获取HTTP对象
let url = "http://somewords.xyz:80/store/login" //填写路径
let promise = httpRequest.request(
// 请求url地址
url,
{
// 请求方式
method: http.RequestMethod.POST,
extraData: {
"storeId": this.storeId,
"password": this.storePassword,
},
// 可选,默认为60s
connectTimeout: 60000,
// 可选,默认为60s
readTimeout: 60000,
// 开发者根据自身业务需要添加header字段
header: {
'Content-Type': 'application/json'
}
}).then((data) => {
//回调函数
}).catch((err) => {
console.info('error:' + JSON.stringify(err));
})
```
4).使用axios框架并封装
position2.png
通过这个工具类,我们可以获得axios对象,并配置网络请求的基础路径。后续利用axios发送http请求
```
var _axios: AxiosInstance = null;
export function getAxios() {
if (_axios) {
return _axios
}
return _axios = axios.create({
baseURL: 'http://jiazixin.xyz:80'
});
}
```
5).封装HTTP请求
将不同功能的请求封装在不同的Request类里
Requests.png
以登录功能的POST请求为例:配置好post请求的路径和参数,利用axios进行网络请求
```
import { getAxios } from "../util/HttpUtil"
import { AxiosRequestConfig } from "@ohos/axios"
export namespace LoginRequest {
/**
* 登录请求
* @param storeId
* @param password
* @returns
*/
export function login(storeId, password) {
// 请求url地址
let url = "/store/login"
return getAxios().post(url, {
"storeId": storeId,
"password": password,
})
}
}
```