如何在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/