本篇随笔主要是关于Flex与asp.net的WebService通讯,其中利用了SoapHeader。(如果你对SoapHeader不了解主看我以前的一篇随笔WebService开发(一) 如何使用Soap头)。由此可见WebService在跨平台方面的优势。
ASP.NET的WebService代码

Flex与Dotnet 之 WebServiceusing System;
Flex与Dotnet 之 WebService
using System.Web;
Flex与Dotnet 之 WebService
using System.Web.Services;
Flex与Dotnet 之 WebService
using System.Web.Services.Protocols;
Flex与Dotnet 之 WebService
Flex与Dotnet 之 WebService[WebService(Namespace 
= "http://davidfan.cnblogs.com")]//名称空间应该和Flex中定义相同
Flex与Dotnet 之 WebService
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
Flex与Dotnet 之 WebService
public class Service : System.Web.Services.WebService

Flex的mxml、as代码
mxml
Flex与Dotnet 之 WebService<?xml version="1.0" encoding="utf-8"?>
Flex与Dotnet 之 WebService
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontFamily="simsun" fontSize="12">
Flex与Dotnet 之 WebService
<mx:Script>
Flex与Dotnet 之 WebService
<![CDATA[
Flex与Dotnet 之 WebService    import WebServiceUtility.Info;
Flex与Dotnet 之 WebService    import mx.rpc.events.FaultEvent;
Flex与Dotnet 之 WebService    import mx.rpc.events.ResultEvent;
Flex与Dotnet 之 WebService    import mx.rpc.soap.SOAPHeader;
Flex与Dotnet 之 WebService    
Flex与Dotnet 之 WebService    private function SendRequest():void
Flex与Dotnet 之 WebService    {
Flex与Dotnet 之 WebService        var content:Info = new Info();
Flex与Dotnet 之 WebService        content.Name = UserName.text;
Flex与Dotnet 之 WebService        content.Password = PassWord.text;
Flex与Dotnet 之 WebService        content.ExDate = new Date(2010, 3, 10);
Flex与Dotnet 之 WebService        //关键在QName的构造函数
Flex与Dotnet 之 WebService        //第一个参数要和.Net的WebService的名称空间相同
Flex与Dotnet 之 WebService        //第二个参数要和.Net的WebService的继承自SoapHeader的自定义类名称相同
Flex与Dotnet 之 WebService        var qname:QName = new QName("http://davidfan.cnblogs.com","ValidateSoapHeader");
Flex与Dotnet 之 WebService        var header:SOAPHeader = new SOAPHeader(qname,content);
Flex与Dotnet 之 WebService        
Flex与Dotnet 之 WebService        ws.clearHeaders();
Flex与Dotnet 之 WebService        ws.addHeader(header);
Flex与Dotnet 之 WebService        ws.HelloWorld();
Flex与Dotnet 之 WebService    }
Flex与Dotnet 之 WebService    private function OnResult(event:ResultEvent):void{
Flex与Dotnet 之 WebService            Result.text= event.result.toString();
Flex与Dotnet 之 WebService    }
Flex与Dotnet 之 WebService    private function OnFault(event:FaultEvent):void{
Flex与Dotnet 之 WebService            Result.text= event.message.toString();
Flex与Dotnet 之 WebService    }
Flex与Dotnet 之 WebService]]
>
Flex与Dotnet 之 WebService
</mx:Script>
Flex与Dotnet 之 WebService
<mx:WebService id="ws" wsdl="http://localhost:9200/WebSite2/Service.asmx?WSDL"
Flex与Dotnet 之 WebServiceresult
="OnResult(event)" fault="OnFault(event)"/>
Flex与Dotnet 之 WebService
<mx:TextInput id="UserName" x="98" y="94"/>
Flex与Dotnet 之 WebService
<mx:TextInput id="PassWord" x="98" y="124"/>
Flex与Dotnet 之 WebService
<mx:Label x="29" y="98" text="用户名:"/>
Flex与Dotnet 之 WebService
<mx:Label x="29" y="128" text="密 码:"/>
Flex与Dotnet 之 WebService
<mx:Button x="98" y="184" label="调用" click="SendRequest()"/>
Flex与Dotnet 之 WebService
<mx:Label x="29" y="156" text="结 果:"/>
Flex与Dotnet 之 WebService
<mx:TextInput id="Result" x="98" y="154"/>
Flex与Dotnet 之 WebService
</mx:Application> 
as
Flex与Dotnet 之 WebServicepackage WebServiceUtility
}

相关文章: