- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在 Delphi 下 SOAP 技术的实现
一、开发 SOAP 服务端
1、打开: [文件]/[新建]/[其他],出现以下界面:
2、选择 ISAPI/INSAPI Dynamic Link Library
3、在 Service Name 中 输入接口名,如:现输入媒体发送接口SendMedia
4、出现 SendMediaInf 和 SendMediaImpl 两个 Pas 文件,其中 SendMediaInf 是
COM 接口描述的文件,SendMediaImpl 是接口的实现
在 SendMediaInf 文件中出现ISendMedia = interface(IInvokable)的接口类型定义,现在接口类型描述中增加两个函数:
、短信发送函数,成功返回 0,失败返回-1。
function echoSendSM(const SMContent, PhoneNum: String): integer;stdcall;
、获取短信发送次数。
function echoGetSendTimes: integer;stdcall;
代码:
type
{ Invokable interfaces must derive from IInvokable } ISendMedia = interface(IInvokable)
[{A5D12FE2-EF42-401C-9C4A-9E4A322E74B4}]
function echoSendSM(const SMContent, PhoneNum: String): integer;stdcall; function echogetSendTimes: integer;stdcall;
end;
5、SendMediaImpl 中也有接口类型的描述,现在需要增加在 SendMediaInf 定义的函数描述,保持与接口中定义的函数保持同步
type
{ TSendMedia }
TSendMedia = class(TInvokableClass, ISendMedia)
Public
function echoSendSM(const SMContent, PhoneNum: String): integer;stdcall; function echogetSendTimes: integer;stdcall;
end;
6、在 SendMediaImpl 文件中完成函数的实现
function TSendSM.echoSendSM(const SMContent, PhoneNum: String): integer; var
Str:pchar; begin
Str:=pchar(Send to: [+PhoneNum+] Content:[+SMContent+]);
WriteLog(Str); result:=0;
end;
function TSendSM.echogetSendTimes: integer; begin
result:=GetSendTimes; end;
var
FileHandle:Thandle;
SendTimes:integer;
//私有函数:写日志前初始化
procedure InitLogFile; var
LogFile:String; begin
LogFile := C:\SendSM.log; if FileExists(LogFile) then begin
FileHandle := FileOpen(LogFile, fmOpenReadWrite); FileSeek(FileHandle,0,2);
end else begin
FileHandle := FileCreate(LogFile); end;
end;
//私有函数:写日志
procedure WriteLog(const log: pchar); var
logStr:Pchar; begin
InitLogFile; logStr:=Pchar(log+#13#10);
FileWrite(FileHandle, logStr^, length(logStr)); FileClose(FileHandle);
incTimes;
end;
procedure incTimes; begin
inc(SendTimes);
end;
7、编译成功,完成SOAP 接口的 SendMedia.dll 的 DLL 文件
二、 将 DLL 文件挂载到 IIS 服务器,并获取 WSDL 文件。
1、安装 IIS 后,打开 Internet 信息服务
2、右击默认网站,新建虚拟目录
3、输入 DLL 存放路径
3、 点击完成。
4、 右击 SendSM 目录
文档评论(0)