RO12 - RemObjects SDK
调用已存在的
SOAP Web Service
本文向你展示如果创建一个使用
BabelFish Web Service
的
RO standalone
程序,并测试一下不同语言的转换
.
新应用程序
启动
Delphi,
创建新的应用程序
"File|New Application",
向窗体拖动如下控件
: TEdit, TButton, TROWinInetHTTPChannel, TRoSoapMessage,
和几个
TLabel
控件
.
如图
:
导入服务
接下来我们导入
BabelFish service
中的服务
,
以便于在我们的代码中调用
.
在
IDE
中打开
RemObjects
菜单选择
"Import SOAP Web Service ...".
弹出
Service Builder
允许你导入存在的服务定义
. SB
允许从不同的源导入服务
:
对于三方提供的
Web Service,
通常都知道其
WSDL
文件地址
.
一个
WSDL (short for Web Services Description Language)
文件是一个
XML
文档格式
,
描述了
Web Service
中的方法定义和如何调用这些方法
.
导入
WSDL
文件后就可以在本地使用了
,
点击
"Import a local .WSDL file".
你可以在文件浏览窗体中选择
WSDL
文件并点击
"Import"
导入
.
第二部
,
你可以在
www.xmethods.com
上发现很多已存在的
Web
Service
.
如果你想从
Internet
上导入
WSDL,
点击
"Import a SOAP Web Service from the Web by its URL"
输入你要导入的
Web Service
的
URL
后点击
"Import"
按钮
. (
这个范例是
http://www.xmethods.net/sd/2001/BabelFishService.wsdl,
这个
URL
是
AltaVista BabelFish
服务
).
导入后点击
"View WSDL"
按钮可以在
IE
浏览器中查看这个
WSDL.
点击
"Import"
后
, ServiceBuilder
打开并显示导入的服务定义
.
关闭
ServiceBuilder
返回
Delphi. Delphi IDE
将提示已经输入导入单元的文件名
.
输入
"BabelFish_Intf.pas",
点击
"Ok"
并点击
"Yes"
将这个单元加入到项目中
.
回到主窗口单元用
"File|Use Unit..."
选择
"BabelFish_Intf.pas"
将新加入的单元引入近来
.
在主窗体中双击
"Translate"
按钮创建事件处理函数并加入如下代码调用服务
:
注意这里尽量的简单创建对象实例
(
这里通过消息和通道对象实现通信
),
然后调用适当的方法
.
注意生成的服务接口与
Delphi
完全兼容
,
所以在我们写代码时提供完整的提示
,
编译时也作全类型的检查
.
现在我们允许程序在编辑框中输入英文并点击
"Translate"
按钮
:
明显翻译不是很准确但是这超出了本文的范围
.