To działa dobrze przez protokół HTTP, ale gdy próbuję i wykorzystywać źródła HTTPS rzuca następujący wyjątek:Jak połączyć się przez HTTPS za pomocą Jsoup?
10-12 13:22:11.169: WARN/System.err(332): javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
10-12 13:22:11.179: WARN/System.err(332): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:477)
10-12 13:22:11.179: WARN/System.err(332): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:328)
10-12 13:22:11.179: WARN/System.err(332): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.setupSecureSocket(HttpConnection.java:185)
10-12 13:22:11.179: WARN/System.err(332): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:433)
10-12 13:22:11.189: WARN/System.err(332): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeConnection(HttpsURLConnectionImpl.java:378)
10-12 13:22:11.189: WARN/System.err(332): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:205)
10-12 13:22:11.189: WARN/System.err(332): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:152)
10-12 13:22:11.189: WARN/System.err(332): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:377)
10-12 13:22:11.189: WARN/System.err(332): at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364)
10-12 13:22:11.189: WARN/System.err(332): at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143)
Oto odpowiedni kod:
try {
doc = Jsoup.connect("https url here").get();
} catch (IOException e) {
Log.e("sys","coudnt get the html");
e.printStackTrace();
}
tylko znaleźć na to pytanie ...... mam ten sam problem, ale co mam zrobić z plikiem crt jeśli ja używam Eclipse? jaka jest alternatywa keytool dla eclipse? – gedo
Wygląda na to, że firefox pozwala również na korzystanie z certyfikatu na poziomie domeny do odwiedzania subdomen. Jednak JSoup nie pozwoli na to. Wszelkie sugestie, aby to naprawić? – bvdb
Dzięki za napiwek! Nadal masz problem z załadowaniem pliku .jdk. Wygląda na to, że nie ma go w katalogu zewnętrznym/crt. Plik f = nowy Plik (Environment.getRootDirectory() + "/crt/www.loterie.lu.jks"); \t if (f.isFile()) \t \t \t Log.i ("JSOUP", "Znaleziono plik certyfikatu"); \t \t inny \t \t \t Log.i ("JSOUP", "BŁĄD: Certyfikat nie znaleziono pliku" + f.getAbsolutePath()); – Dax