如何在Android上调用SOAP Web服务

我很难找到有关如何使用Android调用标准SOAP / WSDL Web服务的良好信息。 我所能找到的都是非常复杂的文档和对“kSoap2”的引用,然后关于用SAX手动解析它的一些内容。 好吧,没关系,但是它是2008年的,所以我认为应该有一些用于调用标准Web服务的好库。

Web服务基本上是在NetBeans中创建的。 我希望IDE支持生成管道类。 我只需要用最简单/最优雅的方式联系基于Android手机的基于WSDL的Web服务。


Android不提供任何类型的SOAP库。 你可以自己写,也可以使用类似kSOAP 2的东西。正如你注意到的,其他人已经能够在他们自己的项目中编译和使用kSOAP2,但我没有必要。

到目前为止,Google已经向Android添加SOAP库的兴趣不大。 我怀疑这是因为他们宁愿支持Web服务当前趋向于基于REST的服务,并将JSON用作数据封装格式。 或者,使用XMPP进行消息传递。 但这只是猜测。

目前,基于XML的Web服务在Android上是一项稍微不重要的任务。 不知道NetBeans,我不能说说那里提供的工具,但我同意应该有一个更好的库。 XmlPullParser可能会让您免于使用SAX,但我对此不甚了解。


org.apache.http.impl.client.DefaultHttpClient默认进入Android SDK。 这会让你连接到WSDL。

HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("http://www.example.com/" + URL);
HttpResponse response = httpClient.execute(httpGet, localContext);

的确,由于它的开销,SOAP并不是与移动设备进行数据交换的最佳选择。 但是,您可能发现自己处于不控制服务器输出格式的情况。

所以,如果你必须坚持使用SOAP,那么在这里为Android安装一个kSOAP2库:
http://code.google.com/p/ksoap2-android/

链接地址: http://www.djcxy.com/p/12341.html

上一篇: How to call a SOAP web service on Android

下一篇: REST API Best practices: Where to put parameters?