鸿蒙Next开发中如何请求不带https的接口

在鸿蒙Next开发中,如何请求不带HTTPS的HTTP接口?系统默认似乎会拦截非加密请求,应该怎么配置才能允许访问普通的HTTP链接?需要修改清单文件还是添加特殊权限?求具体实现方法。

2 回复

鸿蒙Next里请求HTTP接口?简单!在module.json5里加个网络权限:

"reqPermissions": [{
  "name": "ohos.permission.INTERNET"
}]

然后记得在代码里用http前缀,别手滑写成https。注意:鸿蒙默认禁止HTTP,得在config.json里配置cleartextTraffic为true。搞定后,你的应用就能愉快地和HTTP接口玩耍啦!🚀

更多关于鸿蒙Next开发中如何请求不带https的接口的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next开发中,请求不带HTTPS(即HTTP)接口时,需要注意网络安全配置。以下是具体步骤和示例代码:

1. 配置网络安全权限

module.json5 文件中添加网络权限和明文传输(HTTP)允许配置:

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  },
  "deviceConfig": {
    "default": {
      "network": {
        "cleartextTraffic": true  // 允许HTTP明文传输
      }
    }
  }
}

2. 使用 @ohos.net.http 发送HTTP请求

示例代码(ArkTS):

import http from '@ohos.net.http';

// 创建HTTP请求
let httpRequest = http.createHttp();

// 请求URL(使用HTTP协议)
let url = 'http://api.example.com/data';

// 发送GET请求
httpRequest.request(
  url,
  {
    method: http.RequestMethod.GET,
    connectTimeout: 60000,
    readTimeout: 60000,
  }, (err, data) => {
    if (!err) {
      console.log('Response:', data.result); // 处理响应数据
    } else {
      console.error('Request error:', err); // 处理错误
    }
  }
);

注意事项:

  • 仅限测试环境:生产环境强烈建议使用HTTPS,HTTP存在安全风险。
  • 模拟器限制:部分模拟器可能默认禁用HTTP,需通过cleartextTraffic显式开启。
  • 网络权限:确保在配置文件中正确声明INTERNET权限。

通过以上配置和代码,即可在鸿蒙Next中请求HTTP接口。

回到顶部