WebService的简单使用
发布时间:2020-12-17 00:03:23 所属栏目:安全 来源:网络整理
导读:适合使用Web Services的情况 (1)跨越防火墙; (2)应用程序集成; (3)B2B集成; (4)软件重用 创建WebService 在项目中添加新项---Web服务 ?MyWebService.asmx ? /// summary /// MyWebService 的摘要说明 /// /summary [WebService(Namespace = "MyWe
适合使用Web Services的情况(1)跨越防火墙;(2)应用程序集成; (3)B2B集成; (4)软件重用 创建WebService在项目中添加新项--->Web服务 ?MyWebService.asmx? /// <summary> /// MyWebService 的摘要说明 /// </summary> [WebService(Namespace = "MyWebService")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class MyWebService : System.Web.Services.WebService { public MySoapHeader mySH = null; //在客户端使用的时候实例化 [WebMethod] public string HelloWorld() { return "Hello World"; } [SoapHeader("mySH")] //这里通过SoapHeader传递信息 [WebMethod(Description="判断当前用户是否正确")] public string IsRigth() { if (mySH.IsRight()) { return "账号有效"; } return "账号无效"; } } MySoapHeader类的代码 public class MySoapHeader:SoapHeader { private string username; public string Username { get { return username; } set { username = value; } } private string pwd; public string Pwd { get { return pwd; } set { pwd = value; } } public bool IsRight() { //简单的判断 用户名和密码是不是admin if (username == "admin" && pwd == "admin") { return true; } return false; } } 引用WebService如果在其他项目中要引用此WebService,需要添加服务引用。 输入公开的WebService端点,本地直接点发现即可找到要添加的项,添加? 在其他页面调用代码: using (ServiceReference1.MyWebServiceSoapClient client = new ServiceReference1.MyWebServiceSoapClient()) { ServiceReference1.MySoapHeader mysh = new ServiceReference1.MySoapHeader(); //实例WebService提供端 的SoapHeader mysh.Username = "admin"; //初始化用户名 密码 mysh.Pwd = "admin"; string str =client.HelloWorld(); string s = client.IsRigth(mysh); //调用方法时,传入SoapHeader Response.Write(str+"--"+s); //在页面输出 } 异步调用WebService只需在引用WebService后,配置服务引用,选中生成异步操作即可。?系统会自动生成异步操作方法 第二种异步调用方法,使用BackgroundWorker BackgroundWorker backWorker = new BackgroundWorker(); backWorker.DoWork += new DoWorkEventHandler(backWorker_DoWork);//制定执行的事件 backWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backWorker_RunWorkerCompleted); //执行完毕后的回调方法 backWorker.RunWorkerAsync(); //开始异步调用 void backWorker_RunWorkerCompleted(object sender,RunWorkerCompletedEventArgs e) { Response.Write(e.Result); //输出结果 } void backWorker_DoWork(object sender,DoWorkEventArgs e) { using (ServiceReference1.MyWebServiceSoapClient client = new ServiceReference1.MyWebServiceSoapClient()) { ServiceReference1.MySoapHeader mysh = new ServiceReference1.MySoapHeader(); mysh.Username = "admin"; mysh.Pwd = "admin"; string str = client.HelloWorld(); string s = client.IsRigth(mysh); e.Result = str + "--" + s; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容