HarmonyOS 鸿蒙Next 网络请求添加expectDataType参数后,发送请求app直接闪退

HarmonyOS 鸿蒙Next 网络请求添加expectDataType参数后,发送请求app直接闪退

封装的一个HttpUtils文件,部分内容如下:

function httpGet(url: string) {
  let httpRequest = http.createHttp();
  return httpRequest.request(
    url, {
    method: http.RequestMethod.GET,
    header: {
      "Content-Type": "application-json"
    },
    expectDataType: http.HttpDataType.OBJECT, 
    usingCache: true, // 是否使用缓存 默认true
    priority: 1, // 请求优先级 不知道干什么用的 默认1
    connectTimeout: 60000, // 连接时长 默认ms单位
    readTimeout: 60000 // 读取时长 默认ms单位
  }
  )
}

ets文件如下:

import HttpUtils from '../web/HttpUtils'

@Entry
@Component
struct Index{
  build(){
    Column(){
      Row(){
        Button('click send http').onClick(() => {
          getBaidu()
        })
      }.height('100%')
    }.width('100%').height('100%')
  }
};

async function getBaidu() {
  let data = await HttpUtils.httpGet("https://www.baidu.com");
  // @ts-ignore
  console.log(data);
}

最终点击按钮就直接闪退了。
反复测试,不加expectDataType参数就不会有这种问题。不知道是什么原因,希望有大佬可以看看。

更多关于HarmonyOS 鸿蒙Next 网络请求添加expectDataType参数后,发送请求app直接闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

您好,您的问题需进一步分析,请您至工单咨询,会有技术人员和您对接:https://developer.huawei.com/consumer/cn/support/feedback/#/,感谢您的支持~

更多关于HarmonyOS 鸿蒙Next 网络请求添加expectDataType参数后,发送请求app直接闪退的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙OS)中,expectDataType参数用于指定网络请求期望返回的数据类型。如果在添加expectDataType参数后,应用程序直接闪退,可能是由于以下原因:

  1. 参数值错误:expectDataType参数的值可能不正确。该参数通常支持如jsontextarraybuffer等类型。如果传递了不支持的值,可能导致应用崩溃。

  2. API兼容性问题:鸿蒙OS的API版本可能不支持某些参数或值。检查所使用的API版本是否与expectDataType参数兼容。

  3. 内存或资源问题:在某些情况下,网络请求可能消耗过多内存或资源,导致应用崩溃。确保请求处理逻辑不会导致资源耗尽。

  4. 异常未捕获:网络请求过程中可能抛出异常,但未在代码中进行捕获和处理,导致应用崩溃。检查网络请求相关的代码,确保异常被捕获。

  5. 系统或框架问题:某些情况下,系统或框架的bug可能导致应用崩溃。检查是否有相关的系统更新或补丁可以修复此问题。

  6. 数据类型解析错误:如果expectDataType指定的数据类型与服务器返回的数据类型不匹配,可能导致解析错误,进而引发应用崩溃。

  7. 权限问题:网络请求可能需要特定的权限,如果权限未正确配置,可能导致应用崩溃。检查应用的权限配置。

  8. 日志分析:查看应用崩溃时的日志信息,通常可以找到具体的崩溃原因。日志中可能包含异常堆栈信息或错误码。

通过上述分析,可以初步定位问题所在。如果需要进一步排查,可以结合应用的具体代码和日志信息进行深入分析。

回到顶部