1
在大學我們必須開發一個android應用程序,它從網站上抓取我們的標記。如何使用JSoup輕鬆使用HTTPS(自簽名證書)?
我們使用JSoup框架來抓取和解析HTML頁面。現在的問題是,我們的大學使用自簽名證書進行HTTPS連接,而不受較大的可信CA所信任。
我見過這些經常發生的問題,一些通用的解決方案,但他們使用擴展的DefaultHttpClient和自己的SSLSocketFactory。這些解決方案看起來不太好,有沒有一個簡單的美麗的解決方案,通過使用JSoup框架?
private LoginState connect(String username, String password) {
try {
if (isOnline()) {
Log.i(TAG, "Sending POST.");
Connection connection = Jsoup.connect(LOGIN_URL)
.data(USER_FIELD, username).data(PASS_FIELD, password)
.data(LOGIN_BUTTON, "Anmelden")
.data(LOGIN_TYPE, "login").data(PID, "2")
.timeout(DEFAULT_TIMEOUT);
mDocument = connection.post();
mCookies.putAll(connection.response().cookies());
if (isConnected()) {
Log.i(TAG, "Login successful.");
setState(LoginState.LOGIN_SUCCESSFUL);
} else {
Log.i(TAG, "Login failed.");
setState(LoginState.LOGIN_FAILED);
}
} else {
Log.i(TAG, "No Internet Connection.");
setState(LoginState.BAD_CONNECTION);
}
} catch (IOException ex) {
Log.e(TAG, ex.getStackTrace().toString());
setState(LoginState.BAD_CONNECTION);
}
return getState();
}
相關/可能的重複:http://stackoverflow.com/a/7745706 – BalusC
謝謝@Craigy,但我如何解決以下異常「javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:Trust找不到證書路徑的錨點。「爲該網站[dhbw-loerrach.de(https://www.dhbw-loerrach.de/)?我按照說明寫了測試一個小的Java應用程序,但在Android上它不會運行,並以上述異常結束。在Android 2.3下,文件類型或使用它有錯誤嗎? – Pyth0n
@ Pyth0n你應該問一個關於那個特定問題的新問題 – Craigy