यह HTTP पर ठीक काम कर रहा है, लेकिन जब मैं कोशिश करते हैं और एक HTTPS स्रोत का उपयोग यह निम्न अपवाद फेंकता है:Jsoup का उपयोग कर HTTPS के माध्यम से कैसे कनेक्ट करें?
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)
यहाँ प्रासंगिक कोड है:
try {
doc = Jsoup.connect("https url here").get();
} catch (IOException e) {
Log.e("sys","coudnt get the html");
e.printStackTrace();
}
सिर्फ इस सवाल पाया ...... मैं एक ही समस्या है, लेकिन मैं अगर मैं मैं ग्रहण का उपयोग कर रहा CRT फाइल के साथ क्या करते हैं? ग्रहण के लिए keytool का विकल्प क्या है? – gedo
स्पष्ट रूप से फ़ायरफ़ॉक्स डोमेन-स्तरीय प्रमाण पत्र के उपयोग को सबडोमेन पर जाने की अनुमति देता है। हालांकि, JSoup इस अनुमति नहीं देगा। इसे ठीक करने के लिए कोई सुझाव? – bvdb
टिप के लिए धन्यवाद! अभी भी .jdk फ़ाइल लोड करने में कोई समस्या है .. ऐसा लगता है कि यह बाहरी/सीआरटी निर्देशिका से शामिल या एक्सेसिबल नहीं है। फ़ाइल f = नई फ़ाइल (Environment.getRootDirectory() + "/crt/www.loterie.lu.jks"); \t \t अगर (f.isFile()) \t \t \t Log.i ("JSOUP", "प्रमाणपत्र फ़ाइल मिली"); \t \t अन्य \t \t \t Log.i ("JSOUP", "त्रुटि: प्रमाणपत्र फ़ाइल नहीं मिली" + f.getAbsolutePath()); – Dax