|
阅读:2516回复:0
鸿蒙应用向后台请求数据的方法
最近在做鸿蒙项目,需要连接到后代接口。没有使用axios来发请求。类型转换麻烦点,为了让理解简单,根据鸿蒙提供的http, 做了一个简单的封装。
(接受类型都是字符串,减少了类型的定义。主要是用是教学,方便理解。不适合真实项目开发,因为不能约束到传递的类型) 有需要的,可以看看 首先:创建了一个request.js 文件 代码如下: // 引入包名
import { http } from '@kit.NetworkKit';import { BusinessError } from '@kit.BasicServicesKit';
const base_url="http://localhost:3000";
function request(url: string, method: http.RequestMethod, params?: string):Promise<string>{
// 每一个httpRequest对应一个HTTP请求任务,不可复用。
let httpRequest = http.createHttp();
let responseResult = httpRequest.request(// 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定。
base_url+url,
{
method: method, // 可选,默认为http.RequestMethod.GET。
// 当使用POST请求时此字段用于传递请求体内容,具体格式与服务端协商确定。
extraData: params,
header: { 'Accept' : 'application/json' },
readTimeout: 60000, // 可选,默认为60000ms。
});
let getjson: string = '';
return responseResult.then((value: http.HttpResponse) => {
console.log('请求状态 -- > ' + value.responseCode);
if (value.responseCode === 200) {
console.log("请求成功");
let result = `${value.result}`;
getjson = result;
} else {
getjson = '';
}
return getjson;
}).catch(() => {
httpRequest.destroy();
return '';
});
}
export function get(url: string){
return request(url, http.RequestMethod.GET)
}
export function post(url: string, params?: string){
return request(url, http.RequestMethod.POST, params)
}
export function del(url: string, params?: string){
return request(url, http.RequestMethod.DELETE, params)
}
export function put(url: string, params?: string){
return request(url, http.RequestMethod.PUT, params)
}
然后,是使用 //get 请求
// get('/user?userName=¤t=1&pageSize=3').then((data) => {
// console.log('GET请求结果: ', data);
// let userList:User[] = JSON.parse(data).data;
// console.log("user",userList)
// })
//post 请求
// let params = JSON.stringify({"userId":10,"userName":"wowo","userPwd":"111"});
// post(‘/user/add',params)
// .then((data) => {
// console.log('GET请求结果: ', data);
// let userList:User[] = JSON.parse(data).data;
// console.log("user",userList)
// })
//del请求
// let params = JSON.stringify({"userId":10,"userName":"wowo","userPwd":"111"});
// del('/user/del?_id=67d8d7672bb1b9180d21242b')
// .then((data) => {
// console.log('GET请求结果: ', data);
// // let userList:User[] = JSON.parse(data).data;
// // console.log("user",userList)
// })
// put请求
let params = JSON.stringify({"userId":9,"userName":"jj","userPwd":"10000000000000000"});
put('/user/update?_id=67d8d8892bb1b9180d21242f',params)
.then((data) => {
console.log('GET请求结果: ', data);
// let userList:User[] = JSON.parse(data).data;
// console.log("user",userList)
})
|
|
|