首页 / 浏览问题 / WebGIS / 问题详情
iserver 换用https后, icilent 的 地理要素查询经常失效
gt
19EXP 2023年03月06日
在iserver换用https后 : ol.supermap.QueryService(iserver上的服务地址).queryByGeometry() 使用该接口查询指定位置的相关图层,本应正常返回对应图层数据的,但返回的结果经常是空值,偶尔又能正常返回数据。 一样的数据,一样的调用方式, 之前用http时从未出现过此现象

2 个回答

您好,除了启用https还有其它版本或者环境上的变动吗,

如果使用iserver本身的api直接进行查询是否有偶尔查不到结果的现象。

http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/mergedProjects/SuperMapiServerRESTAPI/root/data/featureResults/featureResults.htm

http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iServer/index.htm

希望可以帮助到您。

10,513EXP 2023年03月06日
其他没有变化,只启用了https并更换了访问地址,大部分时候返回的结果都是undefind,偶尔能正常返回数据。  没有用过isever的原生api

我这边使用11i的iClient和iServer,测试本地的https服务和官网https服务均没有出现这个现象。

您哪里使用官网的https服务有出现不稳定的情况吗。

https://iserver.supermap.io/iserver/services/map-world/rest/maps/World

如果您那边使用官网的https没有这些现象,建议你定位下查询不到时是不是查询超时导致的,

加密秘钥证书是否存在异常,加密秘钥的异常是会导致https解析花费更长时间的,更换加密证书、加密方式有没有改善

我是在手机中的webview上运行的代码,当查询返回undefind时,报错 提示[ERROR:ssl_client_socket_impl.cc(996)] handshake failed; returned -1, SSL error code 1, net_error -202
你在pc端使用浏览器或者调试代码也会频繁报这个错吗,相对这个错来说

通常表示在网络连接期间SSL/TLS握手过程存在问题。错误代码-202表示连接已重置。此错误可能由多种问题引起,例如无效的SSL证书、不正确的SSL/TLS设置或网络连接问题。
建议您对以下问题核对确认并调整:
1.检查SSL证书并确保其有效且受信任。

2.验证SSL/TLS设置是否正确并与服务器的设置匹配。

3.检查网络连接并确保连接稳定。
服务器运行在内网环境,使用的是内网证书,浏览器访问也会提示安全问题,但是可以通过点击来继续访问。 Android webview上就不知道如何处理了。
那从iserver和iclient本身https来说,我是建议您解决证书本身的问题。

因为我们是按专项产品帮您解答问题的,如果您需要从 Android webview 上来看有没有思路,

能解决不安全证书提示的问题的话,我这边联系个Android的同事帮您看下。

您好,请问您那边使用的是什么版本的iclient与iserver呢,这边使用android9与iclient-11.0.0访问iserver-11.0.0的服务试了下,在使用WebView加载https资源文件时,如果认证证书不被Android认可,那么会出现无法成功加载对应资源问题,有以下两种方法可以解决该问题

1.设置WebView接受所有网站的证书

在认证证书不被Android所接受的情况下,可以通过设置重写WebViewClient的onReceivedSslError方法在其中设置接受所有网站的证书来解决,重写WebView的onReceivedSslError方法,添加handler.proceed方法,代码实现如下:

webView.setWebViewClient(new WebViewClient(){ @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){ handler.proceed(); } });

2、启用mixed content

Android webView 从 Lollipop 开始默认不开MixedContentMode,具体实现如下:

webView.setWebViewClient(new WebViewClient(){ @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){ if (Build.VERSION.SDK_INT = Build.VERSION_CODES.LOLLIPOP) { webView.getSettings() .setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } });

以上两种方法本地尝试过后都可以解决证书问题,希望可以帮助到您

3,685EXP 2023年03月07日
谢谢。你说的这两个方法已经应用了,
...