用Delphi 6开发Web services 2

原创 2001年08月19日 13:43:00
调用GetWordsForCheck过程
现在,让我们回到Delphi工程的主单元然后在"使用"列表中加入导入单元(要么通过选择"文件|使用单元"菜单,要么通过显式的将它添加到"使用"列表中去).在应用程序主窗口中,我们将使用三个编辑框,如图B所示.第一个编辑框(输入框)将包含一个阿拉伯数字.第二个编辑框(输出框)将包含用英文单词表示的数字.第三个编辑框我们将在本文的后面使用,它将包含同样的数字,但是是用另外一种语言描述的.我们用一个按钮来启动事件,但我们首先需要一个更重要的部件来使这一切运转起来.打开部件调色板中的WebServices标签然后拖出第一个部件,HTTPRIO(它代表着一个可以通过HTTP访问的远程对象).

图B
b2.gif

HTTPRIO
你还记不记得我们用来生成导入单元所需的WSDL时使用的那个URL吗?导入单元只是标明了IWordsForCheck界面和这个界面的方法,GetWordsForCheck.它并没有指明到哪里找到这个Web服务.那正是你需要告诉给HTTPRIO组件的信息,同样是使用WSDL URL.确保你没有发生任何输入错误(最好是简单的拷贝粘贴),将WSDL URL放在HTTPRIO 组件的WSDLLocation属性栏里:
http://powerofzen.com/cgi-bin/wordsforchecks.exe/wsdl/IwordsForCheck

然后,打开服务属性的下拉列表并选择IWordsForCheckservice(唯一的选项).最后,打开端口属性的下拉列表IWordsForCheckPort(它也是唯一的选项).现在HTTPRIO已经作好准备来连接和使用Web 服务了.

真正的使用过程发生在按钮的OnClick事件处理函数里.我们首先需要从HTTPRIO组件里提取出IWordsForCheck界面(其效果就是激活远程Web服务).一旦我们获得了这个界面,我们就能调用它的方法了(在此例中,就是那个唯一的方法GetWordsForCheck).
procedure TForm1.Button1Click(Sender: TObject);
var
WordsForCheck: IWordsForCheck;
Number: Integer;
begin
WordsForCheck := (HTTPRIO1 AS IWordsForCheck); // 连接
Number := StrToInt(Edit1.Text);
Edit2.Text := WordsForCheck.GetWordsForCheck(Number);
end;

当我们在第一个编辑框中输入42然后点击按钮,将形成一个到远程Web服务的连接,IWordsForCheck界面将被提取出来(如果我们能够连接到Web服务的话),而后数字42将被转换成"FORTY TWO DOLLARS AND 00 CENTS".

BabelFish
你也可以在一个程序中使用不止一个Web服务.为了演示,让我们首先看看BabelFish翻译Web服务(基于AltaVista的BabelFish)将怎样把我们所得到的结果从英文翻译到德文.参看XMethods BabelFish Service Details来获得更详细的信息.

我将把使用WSDL URL(http://www.xmethods.net/sd/BabelFishService.wsdl)来生成导入单元并将WSDL URL写入到另一个HTTPRIO组件的WSDLLocation属性的任务留给你.不要忘了同时设定服务和端口两个属性.然后你就可以象下面一样添加最终代码:
procedure TForm1.Button1Click(Sender: TObject);
var
WordsForCheck: IWordsForCheck;
Number: Integer;
BabelFish: BabelFishPortType;
begin
WordsForCheck := (HTTPRIO1 AS IWordsForCheck); // Connect
Number := StrToIntDef(Edit1.Text,0);
Edit2.Text := WordsForCheck.GetWordsForCheck(Number);
BabelFish := (HTTPRIO2 AS BabelFishPortType); // Connect
Edit3.Text := BabelFish.BabelFish('en_de',Edit2.Text)
end;


使它变得更好
不幸的是,BabelFish服务每次只翻译文本中的一个单词.如图C所示,对于 "FORTY TWO",你将得到"VIERZIG ZWEI",它的意思是"四十"和"二"而不是"四十二".为了消除这种限制,并且同时开发出英语到荷兰语的翻译服务(BabelFish现在还没有提供这种功能),我决定编写自己的Number to Dutch Words(将数字用荷兰语表示)的Web服务.那将是我们下一次讨论的题目.同时,如果你对Delphi 6中使用Web服务有任何疑问或者你希望看到更多的例子,有空的时候请访问我的Web站点上的SOAP部分.

图C
b3.gif

全方位解析 Web Services 开发步骤

Web Services 很重要且越来越重要,同时 Web Services 的实现方式也越来越多,这样导致了很多想学习 Web Services 的开发人员不知道如何下手,本教程选择了当下最流行...
  • AlvinNoending
  • AlvinNoending
  • 2015年01月04日 00:40
  • 1108

Java开发Web Service的几种解决方案

转自:http://blog.csdn.net/zolalad/article/details/25158995 Java开发中经常使用到的几种WebService技术实现方案       ...
  • guoweimelon
  • guoweimelon
  • 2016年03月02日 11:54
  • 1887

用Delphi编写web打印插件

做web最不好弄的就是打印了,用IE自带的打印功能不太完美,功能也不强,所以我就将fastreport 4.3报表集成到web中,实现的方法:delphi7的activex+fastreport,下面...
  • chenhuizhouhb
  • chenhuizhouhb
  • 2013年01月04日 09:59
  • 1398

DELPHI XE5开发WEB服务器及安卓手机客户端

Xe5开发web服务端和手机客户端 时间:2013-9-18 17:09:45 点击: 6456 Delphi xe5作为最新开发利器,就类似如当年的DELPHI,功能强大,快发速度快,把...
  • long102
  • long102
  • 2013年12月02日 17:07
  • 2355

Web Service入门开发简单例子--很详尽

.net平台内建了对Web Service的支持,包括Web Service的构建和使用。与其它开发平台不同,使用.net平台,你不需要其他的工具或者SDK就可以完成Web Service的开发了。....
  • lishimin1012
  • lishimin1012
  • 2014年07月29日 14:24
  • 3965

Delphi for iOS开发指南(2):在Windows PC上配置你的开发环境

在这篇教程开始之前,你应该阅读并按教程里的步骤执行: “Delphi for iOS开发指南(1):在Mac上配置你的开发环境”   为iOS目标平台开发的FireMonkey应用程序最初可以在...
  • wei_wu49036233
  • wei_wu49036233
  • 2013年09月03日 09:09
  • 2999

开发简单的Web Services

1.jws方式实例  编写一个服务类  public class HelloWorld{ public String sayHello(String name){ return "axis" ...
  • u013998070
  • u013998070
  • 2015年04月04日 15:06
  • 553

基于JAX-WS的Web Service服务端/客户端

JAX-WS(Java API for XML-Based Web Services)用于简化使用Java构建WebService服务端和
  • a19881029
  • a19881029
  • 2014年06月18日 11:25
  • 22271

delphi一步步开发H5 APP

APP越来越流行,客户需要开发APP,对习惯了用delphi的开发者来说,如何开发APP是个让人头大的问题。其实delphi开发APP是完全可行的。 下面就通过示例,一步步都大家如何开发一个APP。先...
  • pcwe2002
  • pcwe2002
  • 2017年01月18日 23:39
  • 2589

web service概念、架构及相关知识

一、WebService的定义WebService有好几种定义: W3C组织对其定义:WebService是一个软件系统,为了支持跨网络的机器间互操作交互而设计。 WebService通常被定义为一组...
  • liu_shi_jun
  • liu_shi_jun
  • 2016年04月11日 14:42
  • 4981
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用Delphi 6开发Web services 2
举报原因:
原因补充:

(最多只允许输入30个字)