加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

delphi调用短信平台的Webservice

(2013-01-16 08:38:37)
标签:

delphi

it

分类: 计算机

2013-1-16 周三

   短信平台C#的.net平台,包装了信息办提供的短信接口,在windows2003的IIS下发布。

delphi中新建一个单元,WSDL importer,导入

http://IP:port/WebService/shulibLogin.asmx?WSDL

delphi会自动生成所需要的接口文件shulibLogin.pas,略作修改:

GetshulibLoginSoap是WSDL Import自动产生的,另外不需要外加THTTPRIO控件。

自动产生的shulibLogin.pas需要修改两个地方

 try
   //RIO.HTTPWebNode.UseUTF8InHeader:=True; 中文参数
    Result := (RIO as shulibLoginSoap);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


initialization
  InvRegistry.RegisterInterface(TypeInfo(shulibLoginSoap), 'XXX, 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(shulibLoginSoap), 'XXX/CheckUserLogin');
  InvRegistry.RegisterInvokeOptions(TypeInfo(shulibLoginSoap), ioDocument);

1.RIO.HTTPWebNode.UseUTF8InHeader:=True;对于中文参数必须加上 
2.InvRegistry.RegisterInvokeOptions(TypeInfo(ServiceSoap), ioDocument); 如果传入的参数不能被webservice识别时,多半是因为你没有加上这一句。

发送短信的代码:

GetshulibLoginSoap.sms(WideString(trim(edit3.Text)),WideString(trim(edit4.Text)));
编译。。。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有