简单 SOAP 客户机:通用 Java SOAP 客户机
2010-03-23 00:00:00 来源:WEB开发网运行它
Xmethods.com提供了一份在不断发展的公共可用 SOAP 服务列表。除了告诉您可选 SOAP 操作参数是否对每个服务是必需的之外, 它们的许多描述还包括样本 XML 请求,所以我复制了对气温 SOAP 服务器的样本请求,添加了一些空白空间, 并在 zipcode 元素中替代了自己的邮政编码,如 清单 2所示。
Listing 2. SOAP XML Request to find out the temperature at zip code 11217
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
>
<SOAP-ENV:Body>
<ns1:getTemp xmlns:ns1="urn:xmethods-Temperature"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<zipcode xsi:type="xsd:string">11217</zipcode>
</ns1:getTemp>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
这个文件存储在名为 weattherreq.xml的文件中, 清单 3中的命令行将它的内容发送到我获得样本 XML 的同一个 XMethods Web 页面上指定的 SOAP 端点 URL。
Listing 3. Using SOAPClient4XG to send the SOAP request
java SOAPClient4XG http://services.xmethods.net:80/soap/servlet/rpcrouter weatherreq.xml
如 清单 4 中所示,SOAP 服务器发回 SOAP 响应,其中,当前温度存储在 response 元素中。
Listing 4. Temperature SOAP server's response
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<ns1:getTempResponse xmlns:ns1="urn:xmethods-Temperature"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return xsi:type="xsd:float">50.0</return>
</ns1:getTempResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
因为这个 SOAP 客户机从 您创建的 XML 文档文件(而不是从暗中为您创建的无访问权的文件)发送 SOAP 请求, 所以,可以使用 XML 编辑器或文本编辑器来直接修改发送的 XML。 更重要的是,该 SOAP 客户机显示了利用 SOAP 服务正在发展的选项是何等容易。您只要命名服务的 SOAP 端点 URL,设置 HTTP 参数,发送表示方法的一些 XML 和要传递给它们的参数,然后等待响应。
一定要仔细检查可用于您喜爱的编程语言的 SOAP 库。 通常,它们提供的错误处理比我的 SOAP 客户机的更好, 提供的其它一些功能是用于强健应用程序开发的较好基础。 请记住,所有这一切之下的简单性和这种简单协议所实现的强大功能。
更多精彩
赞助商链接