Default.asp
default.asp是用來顯示我們的webservice請求
——————————————————————————————————————————————
<%
Dim ASPNETResources
If len( Application("ASPNETResourceList") )>0 then
If DateDiff("h",Now(),Application("ASPNETResourcesUpdated")) > Application("ASPNETExpires") Then
ASPNETResources = GetASPNetResources()
Application.Lock
Application("ASPNETResourcesUpdated")=Now()
Application("ASPNETResourceList")=ASPNETResources
Application.UnLock
End if
End if
Response.Write Application("ASPNETResourceList")
%>
———————————————————————————————————————
現在是神秘的i_soapcall.asp
大家在想神秘的GetASPNetResources()到底是什麼樣子的,可以用基本的asp頁面調用webservice,不要忘了soap service無
論是wsdl文檔還是執行結果都是一個xml文檔,所以我們可以parse(解析)它,這並不困難!
在函數中我們用到兩個object
Function GetASPNetResources()
Set SoapRequest = Server.CreateObject("MSXML2.XMLHTTP")
Set myXML =Server.CreateObject("MSXML.DOMDocument")
SoapRequest 是伺服器端組件,可以發送post和get請求。
myXML將被用來建立一個soap service的xml文檔
————————————————————————————————————————————
myXML.Async=False
SoapURL = "http://64.85.12.73/WebSvc/whatsnew123apx_ds.asmx/GetNew123aspXResources?"
SoapRequest.Open "GET",SoapURL , False
SoapRequest.Send()
if Not myXML.load(SoapRequest.responseXML) then
returnString = ""
Else
—————————————————————————————————————————————
我們設定SoapURL 為我們的webservice的url然後我們用下面的語句開啟串連
——————————————————————————————————————————————
SoapRequest.Open "GET",SoapURL , False
_____________________________________________________________________________________________
SoapRequest.Open有五個參數,但是只有前兩個是必需的,這意味著其他三個是可以隨意選擇的
參數解釋:
oServerXMLHTTPRequest.open bstrMethod, bstrUrl, bAsync, bstrUser, bstrPassword
Parameters
bstrMethod
HTTP method used to open the connection, such as PUT or PROPFIND.
bstrUrl
Requested URL. This must be an absolute URL, such as "http://Myserver/Mypath/Myfile.asp".
bAsync (optional)
Boolean. Indicator as to whether the call is asynchronous. The default is False (the call does not
return immediately).
bstrUser (optional)
Name of the user for authentication.
bstrPassword (optional)
Password for authentication. This parameter is ignored if the user parameter is Null or missing
設定完畢我們用SoapRequest.Send()向伺服器發送請求,伺服器返回的結果作為文本被儲存在SoapRequest.responseXML中
我們要做的就是構析這段文本。
下面給出i_soapcall.asp的全部代碼
<script language="vbscript" runat="server">
Function GetASPNetResources()
Dim returnString
Dim myXML
Dim SoapRequest
Dim SoapURL
Set SoapRequest = Server.CreateObject("MSXML2.XMLHTTP")
Set myXML =Server.CreateObject("MSXML.DOMDocument")
if Not myXML.load(SoapRequest.responseXML) then 'an Error loading XML
returnString = ""
Else 'parse the XML
Dim nodesURL
Dim nodesName
Dim nodesDateUpdated
Dim nodesDomain
Dim NumOfNodes
Dim ResourceList
Dim i
REM -- The XML Nodes are CASE SENSITIVVE!
Set nodesURL=myXML.documentElement.selectNodes("//URL")
Set nodesName=myXML.documentElement.selectNodes("//Name")
REM -- uncomment the following lines if we want to access the DataUpdated and the Domain Nodes
REM --Set nodesDateUpdated = myXML.documentElement.selectNodes("//DateUpdated")
REM --Set nodesDomain = myXML.documentElement.selectNodes("//Domain")
REM -- the number of nodes in the list
NumOfNodes = nodesURL.Length
ResourceList = "<font face=verdana size=2>Latest ASP.NET Resources</font><ul>"
For i = 0 to NumOfNodes -1
ResourceList = ResourceList & "<li><a href=" & nodesURL(i).text & "><font face=verdana size=2>" &
nodesName(i).text & "</font></a></li>"
next
ResourceList =ResourceList & "</ul>"
returnString = ResourceList
Set nodesURL = Nothing
Set nodesName = Nothing
End If
Set SoapRequest = Nothing
Set myXML = Nothing
GetASPNetResources = returnString
End Function
</script>
同樣的創作思路可以用在別的程式設計語言中