C#調用java 編寫的webservice時不會自動生成 soapheader 類接口的,需要改動Reference.cs。
在生成的代理類referende.cs中進行如下操作:
一、在聲明public new string Url{....}前聲明 public AuthenticationToken header { get; set; },然后在相應位置添加
/// <remarks/> [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.17929")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] public class AuthenticationToken : System.Web.Services.Protocols.SoapHeader { /// <remarks/> public string Username{ get; set; } //要傳入的賬號 /// <remarks/> public string Password { get; set; } //要傳入的密碼 }
二、
在要調用的接口的方法前添加(注:Referende.cs 中的方法)
/// <remarks/> [System.Web.Services.Protocols.SoapHeaderAttribute("header")]
三、頁面中調用用方法
GuestService gs = new GuestService(); //引用的服務 AuthenticationToken t = new AuthenticationToken(); t.Username = "admin123"; t.Password = "admin123"; gs.header = t; gs.methodName();