![](/img/trans.png)
[英]How can i create https connection with self-signed certificate on grails?
[英]How can I easily use HTTPS (self-signed certificate) with JSoup?
在大學里,我們必須開發一個android應用程序,該應用程序可以從網站上獲取我們的分數。
我們使用JSoup框架來捕獲和解析HTML頁面。 現在的問題是,我們的大學將自簽名證書用於HTTPS連接,較大的受信任CA不信任該證書。
對於這些經常發生的問題,我已經看到了一些常規解決方案,但是它們使用帶有自己的SSLSocketFactory的擴展DefaultHttpClient。 這些解決方案看起來不太好,是否有通過使用JSoup Framework來解決的簡單美觀的解決方案?
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();
}
除非JSoup公開了一些使您通過自己的信任庫的API,否則不會。 如果您擁有植根設備,則可以使用this將大學的證書安裝到信任庫中。 如果您有Android 4.0(ICS)設備,則有一個用於安裝受信任CA證書的UI。 另一個想法:使用HttpClient來獲取數據,然后使用JSoup僅用於解析(應該可以)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.