2

我正在使用 KSOAP2 调用 Web 服务。起初,我尝试在没有任何安全性(只有 HTTP)的情况下使用它,结果是成功的。现在,我已将 SSL 安全性添加到我的 Web 服务(它在 Apache Axis2 上运行),但我无法使用 KSOAP2 从我的 Android 应用程序进行连接。我一直在寻找,我能得到的唯一答案是那些告诉我我应该信任所有不受信任的证书(创建一个假的信任管理器)的人:

使用 ksoap2-android 的不受信任的证书

带有 HTTPS 的 KSOAP 2 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 并添加我的不受信任的证书,或者只是做一些事情以避免我刚才谈到的解决方案。如果可能的话,我不想创建一个新的信任管理器。

4

1 回答 1

0

如果您正在使用模拟器,请不要使用 10.0.2.2 作为服务器 ip。对我来说,它不起作用。

尝试在物理设备上测试您的应用(通过 Wifi)

于 2013-07-15T08:18:27.883 回答