【发布时间】:2012-01-16 07:06:41
【问题描述】:
在大学里,我们必须开发一个 android 应用程序,它可以从网站上获取我们的分数。
我们使用 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();
}
【问题讨论】:
-
相关/可能重复:stackoverflow.com/a/7745706
-
谢谢@Craigy,但我如何解决以下异常“javax.net.ssl.SSLHandshakeException:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。”对于网站 [dhbw-loerrach.de(dhbw-loerrach.de)?我已经按照说明写信给我测试一个小型 java 应用程序,但在 android 上它不会运行并以上述异常结束。文件类型或在 Android 2.3 下的使用是否有错误?
-
@Pyth0n 您可能应该就该特定问题提出一个新问题