我有个大麻烦。我必须将应用程序中的一些参数发布到URL。但是,当我试图在WebView对象中执行此操作时,它会向我报告一个异常,该异常表示“不受信任的证书”(该异常由WebViewClient onReceivedSslError()的重写中的方法报告)。如何才能与服务器正确握手?你能给我一些提示吗?我快疯了...
真的,真的谢谢...
编辑:这是我定义webview的方式
webView = (WebView) myFragmentView.findViewById(R.id.webView);
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String string){
Log.debug(tag, "URL pagina terminata :"+webView.getUrl() );
if(progress!=null)
if(progress.isShowing()){progress.dismiss();}
}
@Override
public void onReceivedError(WebView view,
int errorCode,
String description,
String failingUrl) {
Log.error(tag, "ERROR:" + description );
}
@Override
public void onReceivedSslError(WebView view,
SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
Log.error(tag, "SSL Error received: "+ error.getPrimaryError());
handler.proceed();
}
});
这就是我在WebView中创建postRequest的方法
webView.postUrl(url, EncodingUtils.getBytes(postParameters, "base64"));
SSL Error received: 3 - Untrusted Certificate
现在,我搜索了一下,发现需要检查证书的有效性,并将密钥链导入到本地密钥库中。但问题是我不知道从何说起...:)
如果安全性不是优先级,您可以尝试调用Handler.Proceed()
在OnReceivedSSLError()
中,不要调用Super
方法。
如果安全性是优先级(而且应该是优先级):
我自己还没有为webView尝试过这一操作,但是尝试这样设置您的证书:Android webView setCertificate issues SSL problems
要获得实际的证书,您可以将它们加载到浏览器中(通过在浏览器中打开url时接受警告)并从那里导出它们,或者您可以使用openssl工具,如下面所述:http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html
问题内容: 我一直在尝试从SO和其他站点上的大量示例中学习,但是我无法弄清楚为什么我一起学习的示例无法正常工作。我正在构建一个小型的概念验证应用程序,该应用程序可以识别语音并将其(文本)作为POST请求发送到node.js服务器。我确认了语音识别功能,并且服务器正在通过常规浏览器访问获得连接,因此我被认为是问题出在应用程序本身。我想念一些小而愚蠢的东西吗?没有引发任何错误,但是服务器从不识别连接。
问题内容: 我正在学习Java套接字。我正在尝试向Facebook发送HTTPS GET请求,如下所示: 然后,我尝试侦听来自服务器的传入数据,如下所示: 但是我没有从服务器获得任何返回数据。为什么? 问题答案: 两个答案。 您正在尝试与HTTPS服务器通信。这要求您建立一个SSL / TLS通道。这在纯套接字上确实很难>>您必须实现连接协商,密钥链的客户端验证,会话加密/解密等。 一个更合理的方
问题内容: 有没有人能够通过https使用ksoap2 android连接到Soap服务器? 我不断收到“主机名<###>未被验证”的错误 我正在做 显然回头看看不是kandroid的其他ksoap,您可以通过https连接到我们的电话,但我找不到在android版本中做到这一点的方法。 是否有人找到或知道要使用的通话方式? 谢谢你的帮助 问题答案: android ksoap2 2.5.2已
问题内容: 如何通过 HTTPS* 发送ajax GET 请求? * 抛出这个: 是否有其他方法或解决方法可以使此工作正常进行? 如果我使用 Chrome 浏览到该网址,则可以得到响应。我认为没有理由为什么它不能在ajax请求上正常工作。 问题答案: 如果您由于当前处于 同一来源策略 而无法访问该页面,则无法向该页面发出AJAX请求。 **** 的 主机 , 端口 和 方案 (协议)必须在为了使A
我正试图通过我的android应用程序发布一条推特。在网上阅读教程,我写了下面提到的代码。 但是,每次调用twitter.updatestatus()时,我都会遇到以下异常: MainActivity.java:
问题内容: 通过AJAX从标准HTTP页面调用HTTPS页面(例如信用卡授权服务,例如WorldPay)是否会有问题? 我无法想象为什么会有问题,响应将是HTML页面,然后我可以将其嵌入结果窗格或类似的页面? 问题答案: 是的,这将是跨域发布,并且将被浏览器阻止。