HttpsURLConnectionを使用してHTTPSリクエストを実行しています。
私が接続しようとしているサーバーには自己署名証明書があるため、これにより論理的に要求が失敗します。
ただし、例外によって失敗がプログラムに通知されることはありません。それは失敗するだけで、logcatでその理由を見ることができます。
03-22 17:54:35.203: W/System.err(21147): javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
03-22 17:54:35.203: W/System.err(21147): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:381)
リクエストに使用するコードは次のとおりです。
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setUseCaches(false);
connection.setAllowUserInteraction(false);
connection.connect();
理想的には、プログラムがブラウザのように反応するようにします。証明書が信頼されていないことを示すダイアログをポップアップし、場合によってはそれをキーストアに追加して、要求を再試行します。
しかし、例外を取得する方法がわからないので、ここで何をすべきか本当にわかりません。
どんな手掛かり ?