有没有人能够通过https?
使用ksoap2 android连接到soap服务器我一直收到“主机名< ###>未经过验证”的错误
我在做
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport (URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
显然回头看看其他ksoap不是因为你对我们的一个不同的呼叫通过https连接,但我找不到在Android版本中做到这一点的方法。
有人找到方法或知道要使用的电话吗?
感谢您的帮助
答案 0 :(得分:6)
嗯,你需要在Android设备上做两件事:
new KeepAliveHttpsTransportSE(host, port, file, timeout);
一样。参数进入URL对象,例如要访问Jira安装,它就像new KeepAliveHttpsTransportSE("host.whatever", 443, "/rpc/soap/jirasoapservice-v2", 1000)
顺便说一句:我在“Android设备”上写道,因为我发现在J2SE环境中首先测试这些东西很有用,这里lib中缺少(KeepAlive)HttpsTransportSE的东西(我用了ksoap2-j2se-full- 2.1.2.jar)。只需从ksoap2-android获取三个类HttpsTransportSE,KeepAliveHttpsTransportSE和HttpsServiceConnectionSE的源代码,并将它们放入J2SE项目并使用它们。它的工作原理是提高生产力,以获得未知Web服务的第一步(如果您知道Web服务以及如何调整ksoap2,它没用,但它对我来说很方便,因为我是ksoap2及其android的新手分拆)。
答案 1 :(得分: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中被弃用
答案 2 :(得分:2)
您可以将文件名设置为空字符串(“”)。查看ksoap的源代码,它将参数传递给java.net.URL,并从Sun Javadoc引用文件 - “主机上的文件”。 我已经放弃尝试使用ksoap2进行SOAP https调用。问题在于Android处理SSL连接的方式。唯一的解决方案似乎是创建一个本地密钥库来存储SSL证书,并在Apache Httpclient周围编写一个包装器来使用证书。所以我不妨使用REST实现这些调用。猜猜这就是谷歌希望我们做的事情。