HarmonyOS鸿蒙Next中http Proxy如何正确配置才可以连接本机网络???
HarmonyOS鸿蒙Next中http Proxy如何正确配置才可以连接本机网络??? https://developer.huawei.com/consumer/cn/forum/topic/0210196902793768886?fid=0109140870620153026&pid=0312196962641760735
开发者你好
-
如果您的网络无需代理即可访问Internet,设置了代理会影响模拟器的登录授权,请检查并将HTTP Proxy设置为“No proxy”。
-
如果您的网络需要代理访问Internet,未设置代理会影响模拟器的登录授权,请检查并将HTTP Proxy设置为“Manual proxy configuration”,设置方法可参考DevEco Studio代理设置。
模拟器无法链接网络时可以参考以下方案:
- 建议配置安全合理的DNS解析地址,例如:114.114.114.114,删除其他DNS配置。
- 如果希望通过代理服务器去请求目标服务器,可以参考模拟器网络代理配置。
- windows操作系统建议将电脑用户名修改为英文或数字。
【背景知识】
模拟器界面由两部分构成:设备屏幕和工具栏。
- 设备屏幕:部分模拟了真实设备的显示屏,让开发者可以在模拟环境中对应用进行调试和测试。通过模拟器,开发者可以在不依赖于物理设备的情况下进行开发工作,节省了设备和资源成本。
- 工具栏:提供了各种调试工具和控制选项,帮助开发者模拟不同的场景和操作,以提高用户的调试效率。
模拟器访问网络利用的是本地计算机的以太网或者WLAN,与本地计算机共享同一网络资源。如出现无法连接网络的情况,请开发者确认本地网络访问是否受到了限制(如使用公司内网)。如果对网络访问进行了限制,则需要在模拟器上配置网络代理。
更多关于HarmonyOS鸿蒙Next中http Proxy如何正确配置才可以连接本机网络???的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
如果你的场景是在本机上搭建了服务,你应该这么操作(以下以macOS为例)
1、清除你之前进行的所有配置,确保没有其它配置生效。
2、打开终端,输入ifconfig获取本机ip信息
3、找到ifconfig输出结果中的en0下的inet地址,该地址即你在模拟器中可访问到本机的地址。
根据此方法,我在本机上拉起了Apache服务,在模拟器中打开浏览器,访问对应地址,成功获取到了Apache默认结果。

-
代理模式选择:
- 若无需代理:直接选择"No proxy"模式
- 若需本地代理:选择"Manual proxy configuration"(手动代理配置)
-
代理参数设置:
- Host name:填写代理服务器的IP地址
- Port number:填写代理服务的端口号
- No proxy for:指定直连域名(如*.domain.com)
-
模拟器访问互联网:
- 模拟器默认共享本地计算机网络资源
- 若连接失败需检查:
- 本地网络是否受限(如公司内网)
- 访问HTTPS服务需安装数字证书
-
模拟器访问本地服务:
- 通过默认网关地址:10.0.2.2:<localPort>
- 其中<localPort>为计算机实际服务端口
在HarmonyOS Next中配置HTTP代理连接本机网络,需在module.json5文件中配置网络权限。在abilities字段下添加"usesCleartextTraffic": true,并在requestPermissions中申请ohos.permission.INTERNET权限。代理配置通常在应用代码中通过HttpProxy类设置,使用setHttpProxy()方法指定代理服务器地址和端口。
在HarmonyOS Next中配置HTTP代理以连接本机网络,核心是通过@ohos.net.http模块的createHttpProxy方法实现。以下是关键步骤和代码示例:
- 导入模块:
import { http } from '@ohos.net.http';
- 创建代理配置:
let proxyConfig: http.HttpProxy = {
host: '127.0.0.1', // 代理服务器地址(本机可用localhost)
port: 8888, // 代理端口号
exclusionList: [] // 排除代理的地址列表
};
- 创建并应用代理:
// 创建代理对象
let httpProxy = http.createHttpProxy(proxyConfig);
// 发起请求时通过options指定代理
let request = http.createHttp();
let options = {
method: http.RequestMethod.GET,
proxy: httpProxy, // 关键:配置代理
connectTimeout: 60000,
readTimeout: 60000,
header: { 'Content-Type': 'application/json' }
};
// 执行请求
request.request('https://api.example.com/data', options, (err, data) => {
if (err) {
console.error('Request failed:', err.code, err.message);
} else {
console.log('Response:', data.result);
}
});
注意事项:
- 确保代理服务器(如Charles/Fiddler)已在本地运行并监听指定端口
- 真机调试时需保证设备与代理服务器在同一网络,并使用电脑IP地址而非127.0.0.1
- 如需绕过代理访问特定地址,可在
exclusionList中添加域名(如['*.huawei.com']) - 网络权限需在
module.json5中配置:
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
}
]
若代理配置正确但仍无法连接,请检查:
- 防火墙是否拦截代理端口
- 代理服务器是否支持HTTP/HTTPS转发
- 设备网络是否允许代理连接

