至于怎么把webservice发布到服务器上,我就省略不说了。有需要的可以在评论区留言
发布到服务器上之后我们得到这样一个页面;
这个webservice下有两个函数Add和HelloWorld。
我们以Add来示范。
第一步,File->New->Applicaiton
在这个页面简单的放一个按钮
如图:
第二部,File->New->Other
选择webservice标签页,选择WSDLImporter
在这个页面,要注意后面的?wsdl是我们自己加上去的
然后点击next然后finsh,delphi会自动给我们生成一个单元
由于我们是Service1.asmx所以会给我们生成Service1.pas
在生成的单元底部我们需要修改一下代码
InvRegistry.RegisterInterface(TypeInfo(Service1Soap), 'http://tempuri.org/', 'utf-8');
InvRegistry.RegisterInvokeOptions(TypeInfo(Service1Soap),ioDocument);//此处必须手动添加,delphi无法自动生成 这边的Service1Soap你要改成你对应的名字
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(Service1Soap),'http://tempuri.org/%operationName%');
然后在我们一开始创建的application中引用这个service1单元就可以调用了,具体代码如下:
unit WebService;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Service1;
type
TWbsTest = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
WbsTest: TWbsTest;
implementation
{$R *.dfm}
procedure TWbsTest.Button1Click(Sender: TObject);
var
_Soap : Service1Soap;
_Result : Double;
begin
_Soap := Service1.GetService1Soap;
_Result := _Soap.Add(2,3);
ShowMessage(floattostr(_Result));
end;
end.
搞定!