ASP.NET Web Service (2)
發表于:2007-06-30來源:作者:點擊數:
標簽:
從客戶端進行訪問: 除了允許 開發 者使用的創建Web Services的技術以外,Microsoft的 .net 框架給客戶端提供了一套訪問并使用Web Services的精致且高深的工具和代碼。由于Web Services是基于如簡單對象訪問協議 SOA P(Simple Object Access Protocol)和HT
從客戶端進行訪問:
除了允許
開發者使用的創建Web Services的技術以外,Microsoft的
.net框架給客戶端提供了一套訪問并使用Web Services的精致且高深的工具和代碼。由于Web Services是基于如簡單對象訪問協議
SOAP(Simple Object A
clearcase/" target="_blank" >ccess Protocol)和HTTP這樣的開放協議標準的,從而,我們就可以使用這種客戶端技術使用非ASP.NET的Web Services。當然,這也需用高水平地合成ASP.NET Web Services和這種客戶端技術。
SDK中有一個工具叫做WebServiceUtil.exe,我們可以使用它來
下載一個Web Services的SDL描述語言,并創建表達這個Service的代理類。比如,當我們輸入以下命令,就可以創建一個叫做HelloWorld.cs的代理類:
WebServiceUtil /c:proxy /pa:http://someDomain.com/someFolder/HelloWorld.asmx?SDL
這個類看起來與前面創建的類非常相似。它包含一個方法SayHelloWorld,該方法返回一個字符串。將這個代理類編譯到一個應用程序中,然后調用這個代理類的方法,結果就是:通過HTTP,這個代理類包裝SOAP請求,然后接收SOAP編碼響應,最后匯集成為一個字符串。
請看關于Web Service的一個客戶端例程:
客戶端訪問的文件:clint.aspx,內容如下:
<%@ Import Namespace="DataTypesService" %>
<html>
<style>
div
{
font: 8pt verdana;
background-color:cccccc;
border-color:black;
border-width:1;
border-style:solid;
padding:10,10,10,10;
}
</style>
<script language="
VB" runat="server">
Public Sub Page_Load(Sender As Object, E As EventArgs)
Dim D As DataTypes = New DataTypes()
Message1.InnerHtml = D.SayHello()
Message1.InnerHtml = Message1.InnerHtml & D.SayHelloName("Bob")
Message3.InnerHtml = Message3.InnerHtml & D.GetMode()
Dim MyIntArray As Integer() = D.GetIntArray()
Dim MyString As String = "Contents of the Array:<BR>"
For I = 0 To MyIntArray.Length - 1
MyString = MyString & MyIntArray(I) & "<BR>"
Next
Message2.InnerHtml = Message2.InnerHtml & MyString
Dim MyOrder As Order = D.GetOrder()
Message4.InnerHtml = Message4.InnerHtml & "<BR>OrderID: " & MyOrder.OrderID
Message4.InnerHtml = Message4.InnerHtml & "<BR>Price: " & MyOrder.Price
Dim MyOrders As Order() = D.GetOrders()
Message5.InnerHtml = Message5.InnerHtml & "<BR>OrderID: " & MyOrders(0).OrderID
Message5.InnerHtml = Message5.InnerHtml & "<BR>Price: " & MyOrders(0).Price
End Sub
</script>
<body style="font: 10pt verdana">
<H4>Using DataTypes with Web Services</H4>
<h5>Methods that return a Primitive (String): </h5>
<div id="Message1" runat="server"/>
<h5>Methods that return an Array of Primitives (Integers): </h5>
<div id="Message2" runat="server"/>
<h5>Method that returns an Enum: </h5>
<div id="Message3" runat="server"/>
<h5>Method that returns a Class/Struct: </h5>
<div id="Message4" runat="server"/>
<h5>Method that returns an array of Classes/Structs: </h5>
<div id="Message5" runat="server"/>
</body>
</html>
在客戶端程序中,我們使用<%@ Import Namespace="DataTypesService" %>來引入DataTypesService這個我們自定義的名字空間。然后在程序中只是調用了DataTypesService中的方法。
原文轉自:http://www.kjueaiud.com