阅读:1652回复: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) }) |
|
|