HarmonyOS鸿蒙Next中使用Jsoup的https请求页面问题not permitted
HarmonyOS鸿蒙Next中使用Jsoup的https请求页面问题not permitted java.io.IOException:cleartext Http traffic to www.iciba.com not permitted 在鸿蒙OS应用中怎么解决?
发现一个问题,直接从IDE中拷贝的代码,复制到论坛有的无法显示出来。
更多关于HarmonyOS鸿蒙Next中使用Jsoup的https请求页面问题not permitted的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
"deviceConfig": {
"default": {
"network": {
"usesClearText": true,
"securityConfig": {
"domainSettings": {
"cleartextPermitted": true,
"domains": [
{
"subDomains": true,
"name": "www.iciba.com"
}
]
}
}
}
}
}
HarmonyOS的流畅动画和过渡效果让操作更加顺畅,体验极佳。
您好,你这个报错是因为没有配置usesCleartext
导致的,我这边帮你配置了一下就OK了,可以看配置代码和运行效果如下图
like是本地词库的,work/word本地词库没有的,就是会出现下面错误,按你那个配置网络,问题还没有解决
这也太巧了,这也能碰到本地词库,我再看看
您好我在我本地又试了一下没有报错

您好,我这边最后测试没有问题,因为我不知道你的代码是如何写的,现在把我的代码贴给你看一下,以及注意事项发出来
1. 在entry模块里的build.gradle增加Jsoup库,代码如下
2. 编写在JsoupAbilitySlice文件中编写Jsoup访问代码如下
3. 这里由于用到网络访问权限所以在entry模块下的config.json需要在reqPermissions节点下配置相应网络访问权限如下
如果上面的权限不配置则报如下错误
下面是访问没有报错并返回网站信息的结果
可以的话,麻烦将请求页面代码发一下,谢谢。
https://gitee.com/weimin20171202/HiEdict 这个是我的代码,直接使用jsoup源码
好的,我有空看一下,你也可以尝试看看我的方案
还是一样,网络访问异常
请问你的jsoup用的是哪个版本的,谢谢
jsoup-1.13.1
亲爱滴开发者 ,这个问题已经在处理中啦,稍后答复你哟 ,么么哒
在HarmonyOS鸿蒙Next中使用Jsoup进行HTTPS请求时,如果遇到“not permitted”问题,可能是由于系统默认的安全策略限制了某些网络操作。鸿蒙系统对网络请求有严格的安全控制,特别是在处理HTTPS请求时,可能会因为证书验证或协议版本不匹配而导致请求被拒绝。
要解决这个问题,可以尝试以下方法:
-
检查网络权限:确保在应用的
config.json
文件中已经正确配置了网络权限。例如:"reqPermissions": [ { "name": "ohos.permission.INTERNET" } ]
-
使用自定义SSLContext:如果问题是由于证书验证引起的,可以尝试使用自定义的
SSLContext
来绕过证书验证。例如:SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, new TrustManager[]{new X509TrustManager() { public void checkClientTrusted(X509Certificate[] chain, String authType) {} public void checkServerTrusted(X509Certificate[] chain, String authType) {} public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }}, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
-
设置协议版本:确保使用的协议版本与服务器兼容。可以通过设置
HttpsURLConnection
的协议版本来解决:HttpsURLConnection.setDefaultHostnameVerifier((hostname, session) -> true); HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
-
检查Jsoup版本:确保使用的Jsoup版本与鸿蒙系统兼容。某些旧版本的Jsoup可能存在与鸿蒙系统不兼容的问题。
-
调试日志:启用详细的调试日志,查看具体的错误信息,以便更好地定位问题。
通过以上方法,可以解决在HarmonyOS鸿蒙Next中使用Jsoup进行HTTPS请求时遇到的“not permitted”问题。
在HarmonyOS鸿蒙Next中使用Jsoup进行HTTPS请求时,如果遇到“not permitted”问题,可能是由于网络权限未正确配置或SSL证书验证问题。首先,确保在config.json
中已添加<uses-permission ohos:name="ohos.permission.INTERNET"/>
权限。其次,如果目标网站使用自签名证书,可能需要禁用SSL验证,但这会降低安全性。建议使用Jsoup.connect(url).validateTLSCertificates(false)
来绕过证书验证,但仅限测试环境使用。