亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

flex 調用WebService2(基于.net)

2019-11-17 03:13:55
字體:
來源:轉載
供稿:網友

flex 調用WebService2(基于.net)

flex 訪問WebService的方法有很多種,使用FLEX4中的"數據/服務"功能可以自動生成訪問WebService的代理類,這樣可以避免把所有的數據訪問都寫到Mxml頁面上,便于重復利用,同時可以直接導入后臺自定義數據類型,方便傳參。

直接上代碼:其中WebService接口

namespace MyNetWebService{    /// <summary>    /// MyWebService 的摘要說明    /// </summary>    [WebService(Namespace = "http://tempuriTemp.org/")]    [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    {        [WebMethod]        public string HelloWorld()        {            return "Hello World";        }        [WebMethod]        public Model[] GetDetailResult(SearchParameter parmeter, Staff staff)        {            return ModelHelp.GetSaleDetailResult(parmeter, staff);        }    }        }

添加WebService服務:

連接數據/服務—>Web服務—>WSDL URL: 填寫服務地址(http://localhost/XXX/MyWebService.asmx?WSDL)

使用FLEX4中的"數據/服務"功能 在services 下生成的代理類:

數據/服務 下 導入了webService的方法 和 自定義類型

自動生成訪問WebService的代理類_Super_MyWebService.as

/** * This is a generated class and is not intended for modification.  To customize behavior * of this service wrapper you may modify the generated sub-class of this class - MyWebService.as. */package services.mywebservice{import com.adobe.fiber.core.model_internal;import com.adobe.fiber.services.wrapper.WebServiceWrapper;import com.adobe.serializers.utility.TypeUtility;import mx.rpc.AbstractOperation;import mx.rpc.AsyncToken;import mx.rpc.soap.mxml.Operation;import mx.rpc.soap.mxml.WebService;import valueObjects.DetailSearchParameter;import valueObjects.Employee;import valueObjects.Sale;[ExcludeClass]internal class _Super_MyWebService extends com.adobe.fiber.services.wrapper.WebServiceWrapper{         // Constructor    public function _Super_MyWebService()    {        // initialize service control        _serviceControl = new mx.rpc.soap.mxml.WebService();        var operations:Object = new Object();        var operation:mx.rpc.soap.mxml.Operation;        operation = new mx.rpc.soap.mxml.Operation(null, "HelloWorld");         operation.resultType = String;        operations["HelloWorld"] = operation;        operation = new mx.rpc.soap.mxml.Operation(null, "GetDetailResult");         operation.resultElementType = valueObjects.Sale;        operations["GetDetailResult"] = operation;        _serviceControl.operations = operations;        try        {            _serviceControl.convertResultHandler = com.adobe.serializers.utility.TypeUtility.convertResultHandler;        }        catch (e: Error)        { /* Flex 3.4 and eralier does not support the convertResultHandler functionality. */ }        _serviceControl.service = "MyWebService";        _serviceControl.port = "MyWebServiceSoap";        wsdl = "http://localhost/XXX/MyWebService.asmx?WSDL";        model_internal::loadWSDLIfNecessary();        model_internal::initialize();    }    /**      * This method is a generated wrapper used to call the 'HelloWorld' operation. It returns an mx.rpc.AsyncToken whose       * result property will be populated with the result of the operation when the server response is received.       * To use this result from MXML code, define a CallResponder component and assign its token property to this method's return value.       * You can then bind to CallResponder.lastResult or listen for the CallResponder.result or fault events.      *      * @see mx.rpc.AsyncToken      * @see mx.rpc.CallResponder       *      * @return an mx.rpc.AsyncToken whose result property will be populated with the result of the operation when the server response is received.      */    public function HelloWorld() : mx.rpc.AsyncToken    {        model_internal::loadWSDLIfNecessary();        var _internal_operation:mx.rpc.AbstractOperation = _serviceControl.getOperation("HelloWorld");        var _internal_token:mx.rpc.AsyncToken = _internal_operation.send() ;        return _internal_token;    }         /**      * This method is a generated wrapper used to call the 'GetDetailResult' operation. It returns an mx.rpc.AsyncToken whose       * result property will be populated with the result of the operation when the server response is received.       * To use this result from MXML code, define a CallResponder component and assign its token property to this method's return value.       * You can then bind to CallResponder.lastResult or listen for the CallResponder.result or fault events.      *      * @see mx.rpc.AsyncToken      * @see mx.rpc.CallResponder       *      * @return an mx.rpc.AsyncToken whose result property will be populated with the result of the operation when the server response is received.      */    public function GetDetailResult(parmeter:valueObjects.DetailSearchParameter, loginEmp:valueObjects.Employee) : mx.rpc.AsyncToken    {        model_internal::loadWSDLIfNecessary();        var _internal_operation:mx.rpc.AbstractOperation = _serviceControl.getOperation("GetDetailResult");        var _internal_token:mx.rpc.AsyncToken = _internal_operation.send(parmeter,loginEmp) ;        return _internal_token;    }     }}

 自動生成訪問WebService的代理類MyWebService.as

/** * This is a generated sub-class of _MyWebService.as and is intended for behavior * customization.  This class is only generated when there is no file already present * at its target location.  Thus custom behavior that you add here will survive regeneration * of the super-class.  **/ package services.mywebservice{public class MyWebService extends _Super_MyWebService{               }}

Flex 端Temp.mxml

<?xml version="1.0" encoding="utf-8"?><mx:Module  xmlns:fx="http://ns.adobe.com/mxml/2009"             xmlns:s="library://ns.adobe.com/flex/spark"             xmlns:mx="library://ns.adobe.com/flex/mx"             layout="vertical" width="100%" height="100%"            xmlns:common="common.*"            xmlns:mywebservice="services.mywebservice.*"            >    <fx:Script>        <![CDATA[            import mx.events.FlexEvent;            import mx.rpc.events.ResultEvent;            import mx.rpc.soap.WebService;            import mx.controls.Alert;                        protected function btn_call_clickHandler(event:MouseEvent):void            {                // TODO Auto-generated method stub                getresult.token=MyWebService.HelloWorld();            }                        protected function getresult_resultHandler(event:ResultEvent):void            {                // TODO Auto-generated method stub                if(event.result!=null)                {                    resultweb.text=event.result as String;                }            }        ]]>        </fx:Script>    <!-- 引用CSS樣式 -->    <fx:Style source="css/style.css" />            <fx:Declarations>        <!-- 將非可視元素(例如服務、值對象)放在此處 -->        <mywebservice:MyWebService id="MyWebService"  showBusyCursor="true" fault="Alert.show(event.fault.faultString + '/n' + event.fault.faultDetail)"/>         <s:CallResponder id="getresult" result="getresult_resultHandler(event)" />    </fx:Declarations>    <s:VGroup width="100%" height="100%" paddingLeft="10" paddingRight="10" paddingBottom="10" paddingTop="3">        <s:HGroup width="100%" verticalAlign="middle">                        <mx:Text id="resultweb"/>            <common:Cbutton id="btn_call" label="調用webService" click="btn_call_clickHandler(event)" />        </s:HGroup>        <s:HGroup width="100%" verticalAlign="middle">            <s:Label verticalAlign="middle" styleName="msgTxtStyle" width="100%" id="msg_label"/>        </s:HGroup>    </s:VGroup></mx:Module >

運行結果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美电影《睫毛膏》| 欧美激情视频网站| 欧美精品一区二区三区国产精品| 国产91色在线| 国产精品成人一区二区| 久久久久久中文字幕| 欧美色播在线播放| 国产亚洲成av人片在线观看桃| 中文字幕精品久久| 欧美理论电影在线播放| 精品视频久久久久久| 午夜剧场成人观在线视频免费观看| 欧美电影院免费观看| 亚洲免费影视第一页| 国产精品免费久久久久影院| 51色欧美片视频在线观看| 一区二区欧美亚洲| 欧美老女人性生活| 亚洲精品成人久久电影| 亚洲色图13p| 乱亲女秽乱长久久久| 91经典在线视频| 国色天香2019中文字幕在线观看| 日韩av在线影院| 国产男女猛烈无遮挡91| 日本不卡高字幕在线2019| 亚洲精品国产精品国产自| 亚洲精品ady| 亚洲第一黄色网| 深夜福利日韩在线看| 日韩一级黄色av| 精品动漫一区二区三区| 亚洲精品一区二区久| 日韩有码视频在线| 精品毛片三在线观看| 亚洲最大在线视频| 狠狠做深爱婷婷久久综合一区| 在线播放精品一区二区三区| 日韩在线播放视频| 国产精品久久99久久| 日韩av网址在线| 国产精品久久久久久五月尺| 日韩高清免费观看| 欧美视频专区一二在线观看| 久久99青青精品免费观看| 久久国产精品首页| 欧美另类极品videosbest最新版本| 亚洲欧美激情精品一区二区| 日韩欧美在线视频观看| 国产精品美女久久久久久免费| 欧美日韩在线第一页| 国产欧美日韩最新| 欧美贵妇videos办公室| 国产精品美女久久久免费| 45www国产精品网站| 日韩免费在线免费观看| 欧美日韩爱爱视频| 亚洲电影免费观看高清完整版在线观看| 国产69精品久久久久99| 亚洲国产福利在线| 97国产真实伦对白精彩视频8| 黑人巨大精品欧美一区二区| 国产欧美日韩专区发布| 国产精品自产拍在线观看| 欧美电影免费观看高清完整| 97视频com| 久久躁狠狠躁夜夜爽| 国产91露脸中文字幕在线| 成人97在线观看视频| 日本19禁啪啪免费观看www| 欧美高清在线观看| 久久久久久国产精品三级玉女聊斋| 亚洲第一福利网| 久久久久久久久久久亚洲| 91视频免费网站| 91老司机精品视频| 久久夜色撩人精品| www.亚洲一区| 欧美精品18videos性欧| 国产日韩欧美电影在线观看| 欧美视频专区一二在线观看| 91国自产精品中文字幕亚洲| 日韩欧美亚洲国产一区| 欧美精品久久久久久久| 97精品视频在线观看| 久久精视频免费在线久久完整在线看| 91国自产精品中文字幕亚洲| 亚洲一区二区免费| 伊人久久久久久久久久久| 久久久97精品| 97欧美精品一区二区三区| 激情久久av一区av二区av三区| 日韩欧美极品在线观看| 成人免费视频在线观看超级碰| 日本伊人精品一区二区三区介绍| 成人有码在线视频| 欧美xxxx综合视频| 日韩精品久久久久| 亚洲97在线观看| 91国内免费在线视频| 国产91ⅴ在线精品免费观看| 国产精品视频在线观看| xxxx欧美18另类的高清| 日韩美女激情视频| 国产精品爽黄69天堂a| 欧美极品少妇与黑人| 黑人精品xxx一区| 国产a∨精品一区二区三区不卡| 国产精品免费电影| 96sao精品视频在线观看| 深夜福利日韩在线看| 成人激情视频在线播放| 91视频8mav| 日韩av在线不卡| 91久久综合亚洲鲁鲁五月天| 久久九九免费视频| 国产精品av在线播放| 欧美亚洲国产成人精品| 97视频人免费观看| 美日韩精品免费视频| 亚洲精品一区二区三区不| 日韩av在线播放资源| 91久热免费在线视频| 97国产suv精品一区二区62| 中文字幕日韩综合av| 欧美性猛交xxxx乱大交| 欧美综合一区第一页| 成人国产精品久久久久久亚洲| www.99久久热国产日韩欧美.com| 久久综合久久美利坚合众国| 久久97精品久久久久久久不卡| 久久视频免费观看| 91久久精品日日躁夜夜躁国产| 亚洲伊人久久综合| 亚洲精品国产综合区久久久久久久| 国产一区二区在线免费视频| 亚洲视频在线观看免费| 另类专区欧美制服同性| 国产成人鲁鲁免费视频a| 伊人久久大香线蕉av一区二区| 一色桃子一区二区| 成人性生交大片免费观看嘿嘿视频| 精品国产自在精品国产浪潮| 亚洲电影第1页| 久久91亚洲精品中文字幕| 日本午夜在线亚洲.国产| 欧美日韩在线一区| 91在线视频九色| 亚洲天天在线日亚洲洲精| 国产成人综合精品在线| 91久久精品视频| 日韩综合中文字幕| 亚洲精品999| 最近的2019中文字幕免费一页| 精品久久久久久久久久国产| 欧美精品久久久久久久久久| 国产成人福利网站| 亚洲乱码国产乱码精品精天堂| 欧美精品中文字幕一区| 国产免费久久av| 姬川优奈aav一区二区| 91高潮精品免费porn| 欧美国产激情18| 欧美一区二区三区四区在线|