HarmonyOS 鸿蒙Next 第一课:获取网络数据 如何调试
HarmonyOS 鸿蒙Next 第一课:获取网络数据 如何调试
我想测试没有网络连接的时候,登录会提醒无网络连接,但是我关闭主机的网络依然可以正常登录
代码是课程配套的代码
更多关于HarmonyOS 鸿蒙Next 第一课:获取网络数据 如何调试的实战教程也可以访问 https://www.itying.com/category-93-b0.html
课程中点击登录,判断是否有网络连接的源代码。
- 获取当前默认网络信息,
- 判断网络类型
如果是真机,没有网络时,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和调试工具。以下是针对这一过程的简要说明:
-
获取网络数据:
- 使用HarmonyOS提供的网络请求API,如
Fetcher
或HttpURLConnection
等,来发送网络请求。 - 配置请求参数,包括URL、请求方法(GET/POST等)、请求头以及请求体(如需)。
- 接收并处理服务器返回的响应数据,通常包括状态码、响应头和响应体。
- 使用HarmonyOS提供的网络请求API,如
-
调试:
- 利用HarmonyOS开发者工具中的日志功能,打印网络请求和响应的详细信息,包括请求URL、请求参数、响应状态码和响应数据等。
- 使用断点调试功能,在发送网络请求和接收响应的关键代码处设置断点,逐步执行并检查变量的值。
- 如果遇到网络问题,检查设备的网络连接状态,确保设备能够访问目标服务器。
- 检查服务器的响应是否符合预期,包括状态码、响应头和响应体内容。
如果在进行网络数据获取和调试过程中遇到问题,如网络请求失败、响应数据不正确等,可以按照上述步骤进行排查。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html