我正在使用 KSOAP2 调用 Web 服务。起初,我尝试在没有任何安全性(只有 HTTP)的情况下使用它,结果是成功的。现在,我已将 SSL 安全性添加到我的 Web 服务(它在 Apache Axis2 上运行),但我无法使用 KSOAP2 从我的 Android 应用程序进行连接。我一直在寻找,我能得到的唯一答案是那些告诉我我应该信任所有不受信任的证书(创建一个假的信任管理器)的人:
他们总是粘贴相同的代码:
private TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
这不是我要找的。这个答案,即使有效,也只是一种变通方法,并不能解决问题,只是避免了它。我想知道的是,是否有一种方法可以修改 Android cacerts 并添加我的不受信任的证书,或者只是做一些事情以避免我刚才谈到的解决方案。如果可能的话,我不想创建一个新的信任管理器。