看來就屬我的動作最慢了,花火已經寫了ColdFusion的Webservice,小傑也搞定了java的WebService。不管了,反正還是要寫的。關於soap、wsdl和uddi方面的東西我也不想再重複了。現在來做一個很簡單的Web服務,也很無聊。運行.net程式,那就要先裝好.net framework再說,因為程式要調用framework的基類。就是你輸入一個數字N,然後由伺服器計算返回這個數位斐波那契數數列的第N項的值。 你學電腦不知道這個數列?我faint!好了,下面是斐波那契的介紹(Copy過來的) 斐波那契(斐波那契是意大利數學家,約1170一約1250年) 數列是由一個“兔子問題”引起的,即: 假定一對大兔子每一個月可以生一對小兔子,而小兔子出生後兩個月就有生殖能力.問從一對大兔子開始,一年後能繁殖成多少對兔子?這就產生斐波那獎數列: 1,1,2,3,5,8,13,21,34… 其規律是從第三項起,每一項都是前兩項的和.用遞推公式表達就是 a1=a2=1, an=an+1十an-2(n>=3), OK,明白了繼續上路。我們就為實現上面的功能,寫一個WebService程式,管你用什麼軟體編輯,用NotePad都可以。如下: 代碼拷貝框 <%@ Webservice Language="C#" class="Fibonacci" %><br />using System.Web.Services;<br />public class Fibonacci:WebService<br />{<br /> [WebMethod]<br /> public int GetSeqNumber(int fibIndex)<br /> {<br /> if(fibIndex<2)<br /> return fibIndex;<br /> int[] FibArray={0,1};<br /> for(int i=1;i<fibIndex;i++)<br /> {<br /> FibArray[1]=FibArray[0]+FibArray[1];<br /> FibArray[0]=FibArray[1]-FibArray[0];<br /> }<br /> return FibArray[1];<br /> }<br />} [Ctrl+A 全部選擇 然後拷貝] 然後把它存成fibonacci.asmx.,尾碼名為asmx。用IIS遊覽http://localost/fibonacci.asmx,則進入Fibonacci協助頁面。: 點擊本文第一行的Service Description則進入Web服務描述頁面,就是WSDL頁面http://localhost/fibonacci.asmx?WSDL。: 在協助頁中,GetSeqNumber就是你的服務方法,點擊GetSeqNumber進入http://localhost/fibonacci.asmx?op=GetSeqNumber。: 你可以在參數輸入框進行通過HTTP POST協議的測試。比如你輸入10,得出的結果就是: <?xml version="1.0" encoding="utf-8" ?> <int xmlns="http://tempuri.org/">55</int> 從中可以看出答案是55。 下面是flash中的了。 首先建立介面。一共有四個組件要拖入情境中,請看下面的列表。
組件類型 |
執行個體名稱 |
作用 |
WebServiceConnector |
ws |
連結WebService服務,並且和textInput組件、label組件進行資料繫結。 |
TextInput |
data |
輸入資料n |
Label |
answer |
得出斐波那契數列第n項值 |
Button |
bt |
資料觸發器 |
建好後: 點擊ws,用Alt+F7彈出組件屬性偵測器。在參數選擇項中定義的參數: 然後Binding項中定義輸入參數,和得到的結果。: OK,點擊params.fibIndex,在Bind to 項選擇TextInput組件執行個體data。: 因為參數fibIndext是由輸入框所得。然後再定義results的Bind to 綁定到Label組件執行個體answer上。這時所有的資料繫結工作都作完了。 最後在按鈕上加一個命令(我的是由Baheviors自動產生的,原因――懶): on (click) { this._parent.ws.trigger(); } 用Ctrl+Enter測試一下,成功了! 原始碼下載 |