现在webservices好像非常流行,

msvs.net开发webservices特别快捷,

那我们能不能用delphi调用.netwebservices?

答案是肯定的!!!

这要感谢Borland的软件工程师的努力了啊!

现在让我们开始吧,

先用vs.net创建一个简单的webservices;

1.打开vs.net2003 新建一个webservises 命名为WebService1       

2.添加两个WebMethod

[WebMethod]

public string HelloWorld()

{
return "Hello World .NET写的web服务!!^_^"
;
}

[WebMethod]
public string datetostr(DateTime dt)//
将时间转换为字符
{
return dt.ToUniversalTime().ToString();
}

完整代码如下:

using System;
using
System.Collections;
using
System.ComponentModel;
using
System.Data;
using
System.Diagnostics;
using
System.Web;
using
System.Web.Services;

namespace
WebService1
{
         public class Service1 : System.Web.Services.WebService
         {
                   public Service1()
                   {
                            //CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的

                            InitializeComponent();
                   }

                   #region
组件设计器生成的代码
                   //Web 服务设计器所必需的
                   private IContainer components = null;
                   /// <summary>
                   /// 设计器支持所需的方法 - 不要使用代码编辑器修改

                   /// 此方法的内容。
                   /// </summary>
                   private void InitializeComponent()
                   {
                   }
                   /// <summary>
                   /// 清理所有正在使用的资源。
                   /// </summary>
                   protected override void Dispose( bool disposing )
                   {
                            if(disposing && components != null)
                            {
                                     components.Dispose();
                            }
                            base.Dispose(disposing);                  
                   }
                   #endregion
                   [WebMethod]
                   public string HelloWorld()
                   {
                            return "Hello World .NET写的web服务!!^_^"
;
                   }
                   [WebMethod]
                   public string datetostr(DateTime dt)//
将时间转换为字符
                   {
                            return dt.ToUniversalTime().ToString();
                   }
         }
}
2.编译调试
:
我们的webservices已经可以用了;

下面在打开delphi 7

新建一个应用程序:

拖两个button两个edit 和一个HTTPRIO(webservices页上)到窗体上;

3.接下来:

File->new->other->webservices->WSDL importer

点击next 导入

保存unit Service1

4.unit1(form1 的单元文件)中引用Service1, XSBuiltIns

5. HTTPRIO1WSDLLocation   属性设置为'http://localhost/WebService1/Service1.asmx?WSDL'

6.添加form1 的代码如下:

unit Unit1;
interface
uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, InvokeRegistry, Rio, SOAPHTTPClient;
type

  TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    HTTPRIO1: THTTPRIO;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;
var

  Form1: TForm1;
implementation

uses

  XSBuiltIns,

  Service1;

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);

var

  dtm:TXSDateTime;

begin

  dtm:=TXSDateTime.Create;

  dtm:=DateTimeToXSDateTime(now);

  Edit1.Text:=(HTTPRIO1 as Service1Soap).datetostr(dtm);

  dtm.free;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Edit2.Text:=(HTTPRIO1 as Service1Soap).HelloWorld;
end;

end.

7.编译运行

posted on 2008-09-27 21:12  yxbsmx  阅读(332)  评论(1编辑  收藏  举报