webservice ---delphi

来源:互联网 发布:java replaceall \ 编辑:程序博客网 时间:2024/06/07 20:18

======================================================
注:本文源代码点此下载
======================================================

相关名词:

dispatch: 派遣,分派 invoke: 调用 invokable: 可调用接口

treomtable: webservice中自定义类都是继承自该类 tsoapattachment: attachment:附件,一种流类型,可以返回流数据 cgi:(exe)

isapi:(dll) base64编码: uses encddecd; s := encodestring(s); //加 base64 编码 s := decodestring( str ); //解码 utf8: utf8 是8位的unicode字符,而ascii是7位 ,gb2312和unicode是2字节/字,utf8是3字节/字utf8类似以前的8位转7位的编码,是为 了 在网络间不同系统的通讯方便而作的转换。 几乎所有用.net写的webservice只支持doc方式、delphi写的只支持rpc方式;j2me目前对web service的支持仅限于rfc172,而 rfc172要求必须为doc方式(sun怎么偏袒ms?)!

为了在设计中减少障碍,下面还介绍几个概念。

1) soap:soap是一种简单有效的数据传输协议,用于分布式网络环境下数据信息交换,它以xml 作为数据传输的格式,搭配internet上标准的传输协议http、smtp、tcp等来传送信息。从本质上看,soap事实上只是将request和 response经由xml格式把数据打包,达到双方沟通的目的。

2) wsdl:wsdl(web service description language)是一种以xml格式描述的web service语言,当web service provider 要对外公布提供的 web service,就需要通过wsdl来构建描述语言。 在wsdl中有两个非常重要的要素: :此wsdl文件所要描述的web service集合;

每一个port代表外界client可以和此service沟通的一个进入点,一个port会指定一个binding方式。

3):处理中文乱码的问题: 将httprio的 converter 的 options 的 soutf8inheader 设为 true 将生成soap消息的httpsoapdispatcher控件,添加encoding为gb2312 httprio.httpwebnode.useutf8inheader := true;

4)在delphi中,能够传递的自定义类型的对象要继承tremotable,

5:修正一个服务器端的一个bug:将isapithreadpool和isapiapp的次序变一下:isapiapp必须在 isapithreadpool之前: uses ... isapiapp, isapithreadpool 解决如下错误: received content of invalid content-type setting:text/html -soap"expects"text/xml" 6:"xml document must have a top level element. line: 0" 错误,我该如何解决?? 哈纳斯 (2002-08-05 17:26:00) 我也曾碰到同样的问题 解决方法是:别设httprio的wsdllocation,设它的url 如http://localhost/mydir/project1.exe/wsdl/ifirst mydir是你的可执行的虚拟目录,ifirst是你定义的接口名 ***********************************************************************************************

delphi中webservice包含的组件解释(有7个)

(1) thttprio-------:使用http消息来调用远程使用soap的接口对象

(2) thttpreqresp---:给服务器发送一个soap消息, thttpreqresp在可调用接口上执行一个方法请求.

(3) toptosoapdomconvert ----:toptosoapdomconvert处理soap方法请求的组合与分发

(4) tsoapconnection:tsoapconnection在客户端的多层数据库应用中创建并维护客户端和作为webservice 的远程应用服务器间的连接

(5) thttpsoapdispatcher -----:通过将soap消息转发给调用者,thttpsoapdispatcher对soap消息做出响应.

(6) twsdlhtmlpublish -----:twsdlhtmlpublish发布描叙webservice应用的wsdl文档

(7) thttpsoappascalinvoker -----:thttpsoappascalinvoker解释soap的请求信息,并执行相应的可调用接口. ***********************************************************************************************

wsdl 说明:

(web services description language) 规范是一个描述接口,语义以及web服务为了响应请求需要经常处理的工作的xml文档。这将使 简单地服务方便,快速地被描述和记录。以下是一个wsdl的样例:好文要顶关注我收藏该文与我联系


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/