HarmonyOS 鸿蒙Next中接口请求失败: 2300006 Failed to resolve the host name

HarmonyOS 鸿蒙Next中接口请求失败: 2300006 Failed to resolve the host name 开发的app利用外部vpn平台代理的域名地址,在外部平台开启vpn后,app内部接口报请求失败: 2300006 Failed to resolve the host name,解析失败: 2100002, Operation failed. Cannot connect to service,浏览器打开接口地址正常

1、鸿蒙应用默认不自动继承系统 VPN 代理(浏览器自动继承),app需要怎么配置参数

2、目标地址为 HTTP(非 HTTPS),鸿蒙默认禁止明文传输

  • 需显式允许明文传输,这块怎么设置

更多关于HarmonyOS 鸿蒙Next中接口请求失败: 2300006 Failed to resolve the host name的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

开发者您好,麻烦请提供hilog和tcpdump相关日志,同时提供日志已经日志发生的时间,精确到秒。并提供您的vpnConfig虚拟网卡配置和路由等配置信息。

如果是系统版本是log版本并带有betaClub,可以使用如下方式抓取tcpdump+hilog

先清理日志

1.hdc shell

2.cd data/log/hilog

3.hilog -w clear (清除多余日志)

4.exit 退回到目录

一、登录betaClub

二、手机里面的实用工具里面有个betaclub工具,在BetaClub应用里打开TCP dump日志开关,打开日志开关路径:BetaClub->我的->系统设置->TCP dump日志开关。

三、复现问题

四、使用命令hdc file recv /data/log/tcpdump 本地路径,可以抓出tcpdump。

五、使用命令hdc file recv /data/log/hilog 导出hilog

六、提供问题复现时间点

或者使用HarmonyOS Next如何使用WireShark工具抓包

更多关于HarmonyOS 鸿蒙Next中接口请求失败: 2300006 Failed to resolve the host name的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


接口域名地址起初是内网地址,平台代理后,通过平台的vpn调用,vpn和开发的app属于两个应用,vpn开启出现钥匙小图标,浏览器是可以访问代理的地址,但是app内部调用就不通,网络请求框架用的系统自带的

import { http } from '@kit.NetworkKit'

接口地址是http://开头

鸿蒙Next接口请求失败2300006是DNS解析失败错误。主要原因是网络配置问题或域名无法解析。检查网络连接是否正常,确认域名拼写正确且可访问。在开发阶段,确保模拟器或真机网络配置正确。若使用本地服务器,检查防火墙设置。

在HarmonyOS Next中,接口请求失败 23000062100002 通常与网络配置和策略有关。针对你的问题,解决方案如下:

1. 配置应用使用系统VPN代理

鸿蒙应用默认不自动使用系统代理。你需要在应用的网络请求模块中显式配置代理。

使用 http 模块示例:

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

let httpRequest = http.createHttp();
// 关键:设置useProxy为true以使用系统代理
let options = {
  method: http.RequestMethod.GET,
  extraData: {
    useProxy: true // 启用系统代理
  }
};
// 然后发起请求

使用 @ohos/axiosfetch 对于这些库,你通常需要在底层使用 @ohos.net.http 并配置 useProxy,或者检查库是否提供了代理配置选项。如果库不支持,你可能需要直接使用 @ohos.net.http 来确保代理生效。

2. 允许HTTP明文传输

HarmonyOS Next默认禁止非加密的HTTP请求。你必须在应用的配置文件中明确声明允许明文传输。

module.json5 文件中配置:

{
  "module": {
    // ... 其他配置
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ],
    "metadata": [
      {
        "name": "allowNonSecureHttp",
        "value": "true" // 关键:允许HTTP明文请求
      }
    ]
  }
}

总结步骤

  1. 代码层面:在网络请求的配置中,确保设置了 useProxy: true
  2. 配置文件层面:在 module.json5 中,添加 allowNonSecureHttp 元数据并设置为 true
  3. 权限:确保已申请 ohos.permission.INTERNET 网络权限。

完成以上配置后,重新构建并运行应用,应该可以正常通过VPN代理解析域名并访问HTTP接口。

回到顶部