【问题标题】:Consume an "asp service" with Java (without WSDL)使用 Java(没有 WSDL)使用“asp 服务”
【发布时间】:2013-07-11 10:04:40
【问题描述】:

我不确定确切的面额,但我有一个“Web asp 服务”(来自 .NET 应用程序),它给了我一个 XML 文件。 (没有 WSDL...)

例如,我可以使用这样的 URL 来质疑 Web 服务:

http://Connectiquetest:86/Vaudoise/srv_db/db2_personnes.asp?Nopers=529720&SearchMode=1&Name=Smith

其中 Nopers=52920、SearchMode=1 和 Name=Smith 用于向我返回我想要的响应。 (网址是内部系统,没有VPN是无法访问的)

内容类型返回是:“text/xml”(这是一个经典的格式良好的 XML)。

那么,如何使用这些信息从 Java 应用程序调用以接收 XML?任何人都可以告诉我它到底是什么(也许是 SOAP 的特定实现?)

谢谢!

【问题讨论】:

    标签: java asp.net xml web-services


    【解决方案1】:

    最简单(但也是最耗费人力)的方法是打开HttpURLConnection。您可以通过调用URL.openConnection() 来做到这一点。 URL 对象显然基于您提到的 URL,可选择附加参数 NopersSearchModeName。然后,您可以致电 getInputStream() 以访问呼叫的响应。接下来是解析 XML 以解释结果。

    但是,如上所述,这需要大量低级代码(尤其是在读取输入、解析 XML 等时)。考虑将Apache HttpComponents 之类的东西用于与HTTP 相关的工作,结合JAXB 之类的东西来轻松地将检索到的XML 转换为普通的旧Java 对象。

    使用 JAXB 可能需要您拥有 XML 模式。在理想情况下,它已经存在(由编写 ASP 服务的人编写)。在次理想情况下,您必须自己推导它。

    【讨论】:

    • 谢谢,这和我预期的一样。我很快就会试试这个。目前我已经有一个返回的 xml 文件的例子,所以我已经用 XStream 做了一个解析器来表示一个对象。
    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    相关资源
    最近更新 更多