鸿蒙harmony将注册的数据包装成json发送到后端的细节及过程

代码资源

https://download.csdn.net/download/hashiqimiya/92240321

上面的代码是springboot后端源码。

接下来是鸿蒙的注册页面代码:

复制代码
import http from '@ohos.net.http';

// Header 接口
interface Header {
  'Content-Type': string;
}

// RequestOptions 接口
interface RequestOptions {
  url: string;
  method: string;
  header: Header;
  body: string;
}


@Entry
@Component
struct RegisterPage {
  @State username: string = '';
  @State password: string = '';
  @State confirmPassword: string = '';
  @State errorMsg: string = '';

  build() {
    Column({ space: 20 }) {
      Text("用户注册")
        .fontSize(36)
        // .marginBottom(40)
        .textAlign(TextAlign.Center)
      //
      TextInput({ placeholder: "请输入用户名", text: this.username })
        .onChange((value: string) => {
          this.username = value
        })
        .width('80%')
        .height(40)
        .padding(10)
        .border({ width: 1, color: '#ccc', radius: 12 })
        .margin({ top: 100 })

      Row({ space: 10 }) {
        TextInput({
          placeholder: "请输入密码",
          text: this.password,
        })
          .type(InputType.Password) // ✅ 正确设置方式
          .onChange((value: string) => {
            this.password = value
          })
          .width('80%')
          .height(40)
          .padding(10)
          .border({ width: 1, color: '#ccc', radius: 12 })
      }
      // 注册按钮
      Button("注册")
        .onClick(() => {
          this.handleRegister();
        })
        .width('80%')
        .height(40)
        .padding(10)
        .backgroundColor('#ff851c1c')
        .fontColor('white')
        .border({ width: 1, color: '#ff7e5f', radius: 8 })
        .margin({ top: 20 })

      Text(this.errorMsg)
        .fontSize(24)

    }
    .alignItems(HorizontalAlign.Center)
    .width('100%')
  }
  handleRegister() {
    // 检查输入是否为空
    if (this.username === "" || this.password === "") {
      this.errorMsg = "用户名和密码不能为空";
      return;
    }


    // 打包成 JSON 格式
    // 将 JSON 对象转换为字符串
    // const jsonString = JSON.stringify(userData);
    //参数
    const params = JSON.stringify({
      username: this.username,
      password: this.password,
    })
    // 创建 HTTP 请求
    const httpRequest = http.createHttp();
    // const request:RequestOptions = {
    //   url: 'http://localhost:8080/api/register', // 替换为你的后端API地址
    //   method: 'POST',
    //   header: {
    //     'Content-Type': 'application/json'
    //   },
    //   body: params
    // };

    httpRequest.request('http://localhost:8080/api/register',
      {
        method: http.RequestMethod.POST,
        header: {
          'Content-Type': 'application/json'
        },
        extraData: params
      },
      (err, data) => {
      if (err) {
        console.error('请求失败:', err);
        this.errorMsg = "注册失败,请稍后再试";
      } else {
        console.log('请求成功:', data);
        this.errorMsg = "注册成功";
      }
    });
  }
}

在上面代码中的接口链接是

复制代码
http://localhost:8080/api/register

包含localhost。

如果运行在模拟器应该使用的是电脑ip,把localhost改为电脑本地ip。

在preview预览器中的localhost表示的是电脑的本地接口,可调用电脑后端接口,在模拟器中的localhost表示的是模拟器的ip。

注意:

Android的10.0.2.2就是电脑后端的服务,不是电脑ip。

相关推荐
胖胖雕3 天前
LLM增强的网易云API部署用于鸿蒙原生音乐app: Melotopia
docker·node.js·harmony
敲代码的鱼哇15 天前
PDF 预览与签名批注写回 支持安卓 iOS 鸿蒙 UTS插件
android·ios·pdf·鸿蒙·harmony
aqi0022 天前
一文理清 HarmonyOS 6.0.2 涵盖的十个升级点
android·华为·harmonyos·鸿蒙·harmony
aqi001 个月前
一文速览 HarmonyOS 6.0.1 引入的十个新特性
android·华为·harmonyos·鸿蒙·harmony
aqi001 个月前
一文读懂 HarmonyOS 6.1 带来的十大重要升级
android·华为·harmonyos·鸿蒙·harmony
~央千澈~1 个月前
《2026鸿蒙NEXT纯血开发与AI辅助》第六章:「微距」项目启动——工程创建与整体架构设计-卓伊凡
人工智能·harmony·鸿蒙开发·鸿蒙next·harmony os
~央千澈~2 个月前
《2026鸿蒙NEXT纯血开发与AI辅助》第五章:选择成熟方案,创建第一个鸿蒙应用并成功运行-卓伊凡
人工智能·华为·harmonyos·harmony·harmony os
Huanzhi_Lin2 个月前
鸿蒙NEXT出包
华为·harmonyos·鸿蒙·harmony·鸿蒙next·hap
~央千澈~2 个月前
《2026鸿蒙NEXT纯血开发与AI辅助》第二章:DevEco Studio 的基本使用以及arkui的详细介绍-卓伊凡
人工智能·harmony·harmony os
aqi005 个月前
新书《鸿蒙HarmonyOS 6应用开发:从零基础到App上线》出版啦
harmonyos·鸿蒙·harmony