java - Android ksoap2 通过 https

标签 java android soap ksoap2

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

我一直收到“主机名<###>未验证”的错误

我在做

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

显然回顾其他不适用于 android 的 ksoap,您告诉我们通过 https 连接的不同调用,但我找不到在 android 版本中执行此操作的方法。

有没有人找到关于或知道要使用的调用指令的方法?

谢谢你的帮助

最佳答案

那么,您需要在 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 的新手分拆)。

关于java - Android ksoap2 通过 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248147/

相关文章:

c# - 多次异步请求相同的 Web 服务

java - 如何在没有 web.xml 的情况下配置非 spring 纯 javaee web 应用程序

Java Web 服务异常 - NullPointEreException

java - Android - SDK 2.2 上的 java.lang.VerifyError

java - 没有在 grails/java 中始终如一地获取对象 ID

Android NFC writeNdefMessage 抛出 IOException Tag is not ndef

android - 在菜单选项项中设置我自己的单选按钮颜色

android - 如何去掉对话框中的那一行?

java - 将 Soap XML 响应转换为对象

java - 在 JAX-WS 代码优先方法中根据模式验证 soap 请求