私は大きな問題を抱えています。アプリケーションからいくつかのパラメーターを URL に POST する必要があります。しかし、WebView オブジェクト内でそれを実行しようとすると、「信頼されていない証明書」という例外が発生します (例外は、WebViewClient onReceivedSslError() のオーバーライドのメソッドによって発生します)。サーバーと正しくハンドシェイクするにはどうすればよいですか? ヒントを教えてください。気が狂いそう…
本当に、本当にありがとう...
編集:これは私が自分のウェブビューを定義した方法です
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"));
これは LogCat の出力です。
SSL Error received: 3 - Untrusted Certificate
さて、少しグーグルで調べてみると、証明書の有効性を確認し、キーチェーンをローカルのキーストアにインポートする必要があることがわかりました。しかし、問題は、どこから始めればよいかわからないことです... :)