Flex与asp.net的WebService通讯

【字号: 日期:2023-04-01浏览:20作者:雯心
本篇随笔主要是关于Flex与asp.net的WebService通讯,其中利用了SoapHeader。(如果你对SoapHeader不了解,可以参考WebService开发(一);如何使用Soap头)。由此可见WebService在跨平台方面的优势。;ASP.NET的WebService代码以下是引用片段:using;System;using;System.Web;using;System.Web.Services;using;System.Web.Services.Protocols;[WebService(Namespace;=;"http://davidfan.cnblogs.com")]//名称空间应该和Flex中定义相同[WebServiceBinding(ConformsTo;=;WsiProfiles.BasicProfile1_1)]public;class;Service;:;System.Web.Services.WebService{public;ValidateSoapHeader;header;[WebMethod][SoapHeader("header")]public;string;HelloWorld(){if;(header;==;null){return;"请提供验证信息.";}else{if;(header.Name;==;"admin";&&;header.Password;==;"admin"){if;(header.ExDate;<;DateTime.Now){return;"帐号过期";}else{return;"验证成功";}}else{return;"用户名或密码错误";}}}}/**////;<summary>///;继承自SoapHeader的自定义类///;</summary>public;class;ValidateSoapHeader;:;System.Web.Services.Protocols.SoapHeader{public;ValidateSoapHeader(){}public;ValidateSoapHeader(string;name,;string;password,;DateTime;dt){this.name;=;name;this.password;=;password;this.exDate;=;dt;}private;string;name;public;string;Name{get;{;return;name;;}set;{;name;=;value;;}}private;string;password;public;string;Password{get;{;return;password;;}set;{;password;=;value;;}}private;DateTime;exDate;public;DateTime;ExDate{get;{;return;exDate;;}set;{;exDate;=;value;;}}} Flex的mxml、as代码mxml以下是引用片段:<?xml;version="1.0";encoding="utf-8"?><mx:Application;xmlns:mx="http://www.adobe.com/2006/mxml";layout="absolute";fontFamily="simsun";fontSize="12"><mx:Script><![CDATA[import;WebServiceUtility.Info;import;mx.rpc.events.FaultEvent;import;mx.rpc.events.ResultEvent;import;mx.rpc.soap.SOAPHeader;private;function;SendRequest():void{var;content:Info;=;new;Info();content.Name;=;UserName.text;content.Password;=;PassWord.text;content.ExDate;=;new;Date(2010,;3,;10);//关键在QName的构造函数//第一个参数要和.Net的WebService的名称空间相同//第二个参数要和.Net的WebService的继承自SoapHeader的自定义类名称相同var;qname:QName;=;new;QName("http://davidfan.cnblogs.com","ValidateSoapHeader");var;header:SOAPHeader;=;new;SOAPHeader(qname,content);ws.clearHeaders();ws.addHeader(header);ws.HelloWorld();}private;function;OnResult(event:ResultEvent):void{Result.text=;event.result.toString();}private;function;OnFault(event:FaultEvent):void{Result.text=;event.message.toString();}]]></mx:Script><mx:WebService;id="ws";wsdl="http://localhost:9200/WebSite2/Service.asmx?WSDL"result="OnResult(event)";fault="OnFault(event)"/><mx:TextInput;id="UserName";x="98";y="94"/><mx:TextInput;id="PassWord";x="98";y="124"/><mx:Label;x="29";y="98";text="用户名:"/><mx:Label;x="29";y="128";text="密 码:"/><mx:Button;x="98";y="184";label="调用";click="SendRequest()"/><mx:Label;x="29";y="156";text="结 果:"/><mx:TextInput;id="Result";x="98";y="154"/></mx:Application>;;as以下是引用片段:package;WebServiceUtility{public;class;Info{//该类名称可以和.Net中的ValidateSoapHeader不同//但字段要对应拼写相同public;var;Name:String;public;var;Password:String;public;var;ExDate:Date;}};
相关文章: