如何在 Android 上调用 SOAP Web 服务 [已关闭]

2022-08-31 04:18:28

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

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


答案 1

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

到目前为止,谷歌对在Android中添加SOAP库的兴趣不大。我对此的怀疑是,他们宁愿支持当前Web服务向基于REST的服务发展的趋势,并使用JSON作为数据封装格式。或者,使用 XMPP 进行消息传递。但这只是猜想。

目前,基于XML的Web服务在Android上是一项稍微不平凡的任务。由于我不了解 NetBeans,我无法谈论那里可用的工具,但我同意应该有一个更好的库。XmlPullParser 可能会让您免于使用 SAX,但我对此知之甚少。


答案 2

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);

推荐