doubleyong
管理员
管理员
  • 最后登录2025-09-08
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:1652回复:0

鸿蒙应用向后台请求数据的方法

楼主#
更多 发布于:2025-04-01 11:00
最近在做鸿蒙项目,需要连接到后代接口。没有使用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=&current=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)
      })

知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号