HarmonyOS 鸿蒙Next 第一课:获取网络数据 如何调试

HarmonyOS 鸿蒙Next 第一课:获取网络数据 如何调试

cke_2258.png

我想测试没有网络连接的时候,登录会提醒无网络连接,但是我关闭主机的网络依然可以正常登录

代码是课程配套的代码


更多关于HarmonyOS 鸿蒙Next 第一课:获取网络数据 如何调试的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

课程中点击登录,判断是否有网络连接的源代码。

  1. 获取当前默认网络信息,
  2. 判断网络类型

如果是真机,没有网络时,data.netId === 0,会直接返回没有网络链接,导致登录失败。

使用模拟器,用的是电脑默认以太网,即使网络没链接,也会导致能获取到网络信息,也能走到item === 3,返回了true,就导致可以正常登录了。

使用真机,这段代码是ok的,模拟器就有点问题,如果想优化,可以增加代码,判断网络是否可以用,示例代码:

struct LoginPage {
  @State account: string = '';
  @State password: string = '';
  @State isShowProgress: boolean = false;
  private timeOutId: number = -1;
  pathStack: NavPathStack = new NavPathStack();

  private netCon: connection.NetConnection = connection.createNetConnection();

  aboutToAppear(): void {
    // 先使用register接口注册订阅事件
    this.netCon.register((error: BusinessError) => {
      console.log(JSON.stringify(error));
    });

    // 订阅网络丢失事件。调用register后,才能接收到此事件通知
    this.netCon.on('netLost', (data: connection.NetHandle) => {
      console.info("Succeeded to get data: " + JSON.stringify(data));
    });

    this.netCon.on('netAvailable', () => {
      console.log("netAvailable")
    });

    this.netCon.on('netUnavailable', () => {
      console.log("netUnavailable")
    });
  }
}

增加一个状态变量,如果网络不可以,不允许登录

更多关于HarmonyOS 鸿蒙Next 第一课:获取网络数据 如何调试的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你看一下这个例子的源代码,是真的使用了网络请求了吗?可能是模拟器的登陆,并没有使用网络请求

它只是做了一个加载的动画,没有真的请求网络

在HarmonyOS鸿蒙Next系统中,获取网络数据并进行调试主要依赖于其提供的网络API和调试工具。以下是针对这一过程的简要说明:

  1. 获取网络数据:

    • 使用HarmonyOS提供的网络请求API,如FetcherHttpURLConnection等,来发送网络请求。
    • 配置请求参数,包括URL、请求方法(GET/POST等)、请求头以及请求体(如需)。
    • 接收并处理服务器返回的响应数据,通常包括状态码、响应头和响应体。
  2. 调试:

    • 利用HarmonyOS开发者工具中的日志功能,打印网络请求和响应的详细信息,包括请求URL、请求参数、响应状态码和响应数据等。
    • 使用断点调试功能,在发送网络请求和接收响应的关键代码处设置断点,逐步执行并检查变量的值。
    • 如果遇到网络问题,检查设备的网络连接状态,确保设备能够访问目标服务器。
    • 检查服务器的响应是否符合预期,包括状态码、响应头和响应体内容。

如果在进行网络数据获取和调试过程中遇到问题,如网络请求失败、响应数据不正确等,可以按照上述步骤进行排查。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部