有没有人能够通过https使用ksoap2 android连接到肥皂服务器?
我一直收到"主机名<###>未经验证"的错误
我正在做
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport (URL); androidHttpTransport.call(SOAP_ACTION, envelope);
显然回顾其他ksoap不是为了你的安慰我们给我们一个不同的通过https连接的电话,但我找不到在Android版本中做到这一点的方法.
有人找到了一种关于或知道使用呼叫的方法吗?
谢谢你的帮助
好吧,你需要在Android设备上做两件事:
对于SSL,您需要信任服务器证书.您可以在此处安装假信任管理器(http://groups.google.com/group/android-developers/browse_thread/thread/1ac2b851e07269ba/c7275f3b28ad8bbc?lnk=gst&q=certificate,然后在执行任何操作之前调用allowAllSSL() SSL通信/调用ksoap2)或者为此付出更多努力,让它更安全并遵循saxos的指示,我想.
然后你需要使用ksoap2-android或更具体的类(KeepAlive)HttpsTransportSE这样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) .罐).只需从ksoap2-android获取三个类HttpsTransportSE,KeepAliveHttpsTransportSE和HttpsServiceConnectionSE的源代码,并将它们放入J2SE项目并使用它们.它的工作原理是提高生产力,以获得未知Web服务的第一步(如果您知道Web服务以及如何调整ksoap2,它没用,但它对我来说很方便,因为我是ksoap2及其android的新手摆脱).