Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - 编程 » HTTP Web 服务 » HTTP Web 服务示例 » 教程:使用 SQL Anywhere 访问 SOAP/DISH 服务

 

第 3 课:发送 SOAP 请求和接收 SOAP 响应

在本课中,将调用前面课程所创建的包装过程,它会向第一课中创建的 Web 服务器数据库发送 SOAP 请求。有关本课中描述的设置客户端数据库以发送 SOAP 请求的信息,请参见第 2 课:设置用于发送 SOAP 请求和接收 SOAP 响应的 Web 客户端数据库

 ♦  发送 SOAP 请求
  1. 如果在第二课中没有打开客户端数据库,则在 Interactive SQL 中连接它。

    dbisql -c "UID=DBA;PWD=sql;SERVER=ftc_client"
  2. 调用该包装过程以发送 SOAP 请求并接收 SOAP 响应。

    在 Interactive SQL 中运行以下 SQL 脚本:

    CALL FahrenheitToCelsius(212);

    本次调用将华氏温度值 212 传递给 FahrenheitToCelsius 过程,而此过程将值和两个自定义的 SOAP 标头传递给 FToC 过程。两个客户端过程都在第二课中创建过。

    FToC 将华氏温度值和 SOAP 标头发送给 FToCService,后者根据华氏温度值返回一个结果集。

当华氏温度值 212 被传递给 Web 服务器时,FToCService Web 服务将以下 SOAP 响应以 XML 格式返回。

<tns:rowset xmlns:tns="http://localhost/ftc/FtoCService">
 <tns:row>
  <tns:answer>100</tns:answer>
 </tns:row>
</tns:rowset>

Web 客户端数据库的 FahrenheitToCelsius 过程中的 SELECT 语句使用 OPENXML 函数分析 SOAP 响应的 XML 表示,从中抽取出 tns:answer 结构定义的摄氏温度值。

以下响应在 Interactive SQL 中产生:

温度 摄氏
212.0 100.0