我想调用C#做的WebService.但是我不知道怎么添加C#的WebService.我在File->New->WebService->WSDL Module里面输入C# webService的URL但是找不到.能不能给的详细的例子.谢谢.

解决方案 »

  1.   

    你用浏览器打开它的URL,如果能看到他的WSDL,那么DELPHI也一定可以找到,并生成接口代理文件。
    如果你看不见他的WSDL,那么他给你的不是WSDL的URL,而是接口访问的URL。
    这两个URL是不同的。
      

  2.   

    http://blog.csdn.net/sxf_zero/archive/2005/06/13/393443.aspx先用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 Service14.在unit1(form1 的单元文件)中引用Service1, XSBuiltIns5. HTTPRIO1的WSDLLocation  属性设置为'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;
     
     
    implementationuses  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.编译运行 
      
     
    希望本文能起到抛砖引玉的作用^_^
      

  3.   

    http://blog.csdn.net/sxf_zero/archive/2005/06/13/393443.aspx 
      

  4.   

    我在DELPHI中File->new->other->webservices->WSDL importer 输入我在C#中建的WebService的URL比如:http://localhost/WebService1/Service1.asmx.但是我点击NEXT时它报错.不知道什么原因...
      

  5.   

    是不是我的URL输入错了还是什么原因呀
      

  6.   


    http://localhost/WebService1/Service1.asmx?WSDL
     这样添加试试看