【问题标题】:Android ksoap2 via https通过 https 的 Android ksoap2
【发布时间】:2010-02-11 22:12:18
【问题描述】:

有没有人能够通过 https 使用 ksoap2 android 连接到肥皂服务器?

我不断收到“主机名未验证”的错误

我在做

AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport (URL);
androidHttpTransport.call(SOAP_ACTION, envelope);

显然回顾其他不适用于 android 的 ksoap,您向我们提出了通过 https 进行连接的不同调用,但我在 android 版本中找不到方法。

有人找到方法或知道要使用的调用方法吗?

谢谢你的帮助

【问题讨论】:

  • 您找到解决方案了吗?我在这里遇到同样的问题。是否可以通过 HTTPS 发送 SOAP 请求?
  • 不,除了移动到 rest/json 之外,我还没有找到答案

标签: java android soap ksoap2


【解决方案1】:

好吧,您需要在 Android 设备上做两件事:

  1. 对于 SSL,您需要信任服务器证书。您可以安装一个像这里这样的假信任管理器(http://groups.google.com/group/android-developers/browse_thread/thread/1ac2b851e07269ba/c7275f3b28ad8bbc?lnk=gst&q=certificate,然后在进行任何 SSL 通信/调用 ksoap2 之前调用 allowAllSSL()),或者在这方面付出更多努力,使其更安全并遵循 saxos 的说明,我猜测。
  2. 然后您需要使用 ksoap2-android 或更具体的类 (KeepAlive)HttpsTransportSE,例如 new KeepAliveHttpsTransportSE(host, port, file, timeout);。参数进入一个 URL 对象,例如要访问 Jira 安装,它类似于 new KeepAliveHttpsTransportSE("host.whatever", 443, "/rpc/soap/jirasoapservice-v2", 1000)

顺便说一句:我写在“Android 设备”上,因为我发现首先在 J2SE 环境中测试这些东西很有用,而这里的 (KeepAlive)HttpsTransportSE 东西在 lib 中丢失了(我使用了 ksoap2-j2se-full- 2.1.2.jar)。只需从 ksoap2-android 获取 HttpsTransportSE、KeepAliveHttpsTransportSE 和 HttpsServiceConnectionSE 三个类的源代码,并将它们放入您的 J2SE 项目并使用它们。它可以工作,并且可以提高使用未知 Web 服务的第一步的生产力(如果您知道 Web 服务以及如何调整 ksoap2,它没有用,但它对我来说很方便,因为我是 ksoap2 及其 android 的新手分拆)。

【讨论】:

    【解决方案2】:

    android ksoap2 2.5.2 已经发布,支持 https

    http://code.google.com/p/ksoap2-android/

    问题是我不太清楚如何使用它

    HttpsTransportSE aht = new HttpsTransportSE(host, port, file, timeout)
    

    我应该为“文件”参数输入什么?有人知道吗?

    btw AndroidHttpTransport 在最新版本的 ksoap2 中已弃用

    【讨论】:

    【解决方案3】:

    您可以将文件名设置为空字符串 ("")。查看 ksoap 的源代码,它将参数传递给 java.net.URL,并从 Sun Javadoc 中引用文件 - “主机上的文件”。 我已经放弃尝试使用 ksoap2 进行 SOAP https 调用。问题在于 Android 处理 SSL 连接的方式。唯一的解决方案似乎是创建一个本地密钥库来存储 SSL 证书并在 Apache Httpclient 周围编写一个包装器以使用该证书。所以我不妨使用 REST 来实现这些调用。猜猜这就是谷歌希望我们做的。

    【讨论】:

    • 如果您想使用本地密钥库建立与 REST 服务的安全连接,您可以查看我在 blog.antoine.li/index.php/2010/10/… 的博客条目,它提供了详细的分步说明。希望对你有帮助
    • 谢谢它帮了很多忙。我在寻找类似的东西时确实看到了它。清理我的代码后,我将添加一些 cmets 到您的博客文章中。
    • 谢谢。随意评论;)
    猜你喜欢
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多