ASP 呼叫WEB SERVICE 文件
----INDEX----
1. soap請求方式
2. post請求方式
3. SHOWALLNODE函式(關於節點各屬性和資料顯示)
一.SOAP請求示例
下面是一個 SOAP 請求示例。所顯示的佔位符需要由實際值替換。
POST /WebService1/UserSignOn.asmx HTTP/1.1
Host: 192.100.100.81
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/LoginByAccount"
為了與WEBSERVICE互動,需要構造一個與上完全相同的SOAP請求:
url = "http://192.100.100.81/WebService1/UserSignOn.asmx"
SoapRequest=""& _
"
"xmlns:xsd="&CHR(34)&"http://www.w3.org/2001/XMLSchema"&CHR(34)&" "& _
"xmlns:soap="&CHR(34)&"http://schemas.xmlsoap.org/soap/envelope/"&CHR(34)&">"& _
""& _
"
"
"
"
""& _
""
Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open "POST",url,false
xmlhttp.setRequestHeader "Content-Type", "text/xml;charset=utf-8"
xmlhttp.setRequestHeader "HOST","192.100.100.81"
xmlhttp.setRequestHeader "Content-Length",LEN(SoapRequest)
xmlhttp.setRequestHeader "SOAPAction", "http://tempuri.org/LoginByAccount" ‘一定要與WEBSERVICE的名稱空間相同,否則服務會拒絕
xmlhttp.Send(SoapRequest)
‘這樣就利用XMLHTTP成功傳送了與SOAP示例所符的SOAP請求.
‘檢測一下是否成功:
Response.Write xmlhttp.Status&” ”
Response.Write xmlhttp.StatusText
Set xmlhttp = Nothing
%>
如果成功會顯示200 ok,不成功會顯示 500 內部伺服器錯誤? Connection: keep-alive .
成功後就可以利用WEBSERVICE的響應,如下:
SOAP響應示例
下面是一個 SOAP 響應示例。所顯示的佔位符需要由實際值替換。
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
這是與剛才SOAP請求示例所對應的SOAP響應示例,在成功傳送請求後,就可以檢視該響應 :
If xmlhttp.Status = 200 Then
Set xmlDOC =server.CreateObject("MSXML.DOMDocument")
xmlDOC.load(xmlhttp.responseXML)
xmlStr = xmlDOC.xml
Set xmlDOC=nothing
xmlStr = Replace(xmlStr,"xmlStr = Replace(xmlStr,">",">")
Response.write xmlStr
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
請求正確則給出完整響應,請求不正確(如賬號,密碼不對)響應的內容就會資訊不完整.
取出響應裡的資料,如下:
If xmlhttp.Status = 200 Then
Set xmlDOC = server.CreateObject("MSXML.DOMDocument")
xmlDOC.load(xmlhttp.responseXML)
Response.Write xmlDOC.documentElement.selectNodes("//LoginByAccountResult")(0).text ‘顯示節點為LoginByAccountResult的資料(有編碼則要解碼)
Set xmlDOC = nothing
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
顯示某節點各個屬性和資料的FUNCTION:
Function showallnode(rootname,myxmlDOC)'望大家不斷完鄯 2005-1-9 writed by 844
if rootname<>"" then
set nodeobj=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"")'當前結點對像
nodeAttributelen=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"").attributes.length'當前結點屬性數
returnstring=returnstring&"
節點名稱:"&rootname
if nodeobj.text<>"" then
returnstring=returnstring&"
節點的文字:("&nodeobj.text&")"
end if
returnstring=returnstring&"
{
"
if nodeAttributelen<>0 then
returnstring=returnstring&"
屬性數有 "&nodeAttributelen&" 個,分別是:"
end if
for i=0 to nodeAttributelen-1
returnstring=returnstring&"
next
if nodeobj.childNodes.Length<>0 then
if nodeobj.hasChildNodes() and lcase(nodeobj.childNodes.item(0).nodeName)<>"#text" then'是否有子節點
set childnodeobj=nodeobj.childNodes
childnodelen=nodeobj.childNodes.Length
returnstring=returnstring&"
有 "&childnodelen&" 個子節點;
分別是: "
for i=0 to childnodelen-1
returnstring=returnstring&"
next
end if
end if
returnstring=returnstring&"
}
"
response.write returnstring
set nodeobj=nothing
end if
End Function
可以這樣用:
If xmlhttp.Status = 200 Then
Set xmlDOC = server.CreateObject("MSXML.DOMDocument")
xmlDOC.load(xmlhttp.responseXML)
showallnode "LoginByAccountResponse",xmlDOC’呼叫SHOWALLNODE
Set xmlDOC = nothing
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
二.POST請求示例
HTTP POST
下面是一個 HTTP POST 請求示例。所顯示的佔位符需要由實際值替換。
POST /WebService1/UserSignOn.asmx/LoginByAccount HTTP/1.1
Host: 192.100.100.81
Content-Type: application/x-www-form-urlencoded
Content-Length: length
username=string&password=string
構造POST請求:
url = "http://192.100.100.81/WebService1/UserSignOn.asmx/LoginByAccount"
SoapRequest="username="&username&"&password="&password
Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open "POST",url,false
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"’注意
xmlhttp.setRequestHeader "HOST","192.100.100.81"
xmlhttp.setRequestHeader "Content-Length",LEN(SoapRequest)
xmlhttp.Send(SoapRequest)
‘這樣就利用XMLHTTP成功傳送了與HTTP POST示例所符的POST請求.
‘檢測一下是否成功:
Response.Write xmlhttp.Status&” ”
Response.Write xmlhttp.StatusText
Set xmlhttp = Nothing
%>
如果成功會顯示200 ok,不成功會顯示 500 內部伺服器錯誤? Connection: keep-alive .
成功後就可以利用WEBSERVICE的響應,如下:
HTTP POST
下面是一個 HTTP POST 響應示例。所顯示的佔位符需要由實際值替換。
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
顯示:
If xmlhttp.Status = 200 Then
Set xmlDOC = server.CreateObject("MSXML.DOMDocument")
xmlDOC.load(xmlhttp.responseXML)
showallnode "string",xmlDOC'呼叫SHOWALLNODE
Set xmlDOC = nothing
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14601556/viewspace-528538/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何使用ABSL程式碼呼叫Web serviceWeb
- ASP.NET Web API 中使用 swagger 來管理 API 文件ASP.NETWebAPISwagger
- 呼叫ASP.NET Web API不能傳送PUT/DELETE請求ASP.NETWebAPIdelete
- 【Azure DevOps系列】使ASP.NET Core應用程式託管到Azure Web App ServicedevASP.NETWebAPP
- Spring Web Service教程SpringWeb
- Service呼叫其他Service的private方法, @Transactional會生效嗎(上)
- 教你入門Web ServiceWeb
- Android中的Web ServiceAndroidWeb
- Java:Web Service初入門JavaWeb
- Azure AD(二)呼叫受Microsoft 標識平臺保護的 ASP.NET Core Web API 下ROSASP.NETWebAPI
- More web function requests go online concurrently, and web service deployment is faster and more economical!WebFunctionGoAST
- vivo web service:億萬級規模web服務引擎架構Web架構
- Service Worker (Web)推送不完全實踐Web
- ASP.NET Core Web API 介面限流ASP.NETWebAPI
- ASP.NET Web Forms – 事件簡介ASP.NETWebORM事件
- ASP.NET Web Pages – 物件簡介ASP.NETWeb物件
- ASP.NET Core Web API 與 SSLASP.NETWebAPI
- 從0到1手把手教你ASP.NET Core Web API專案配置介面文件Swagger(一)ASP.NETWebAPISwagger
- 從0到1手把手教你ASP.NET Core Web API專案配置介面文件Swagger(二)ASP.NETWebAPISwagger
- 【asp.net core 系列】- 11 Service層的實現樣板ASP.NET
- 使用Adobe lifecycle Enterprise Service將word文件轉換成PDF
- 【Azure App Service】在App Service中呼叫Stroage SDK上傳檔案時遇見 System.OutOfMemoryExceptionAPPException
- ASP.NET Aries DataGrid 配置表頭說明文件ASP.NET
- SAP CRM如何建立支援Web Service的WORD模板Web
- SAP CRM如何建立支援Web Service的PDF模板Web
- 使用soapUI消費SAP Cloud for Customer的web serviceUICloudWeb
- Web service,XSD及WSDL的一些使用Web
- 如何使用FastReport.Service.dll建立Web服務ASTWeb
- ASP.NET Web Forms – ArrayList 物件簡介ASP.NETWebORM物件
- ASP.NET Web Forms – SortedList 物件簡介ASP.NETWebORM物件
- ASP.NET Web Forms – Hashtable 物件簡介ASP.NETWebORM物件
- ASP.NET Web Forms – 導航簡介ASP.NETWebORM
- ASP.NET Core Web API 教程 - Project ConfigurationASP.NETWebAPIProject
- ASP.NET Core Web Api之JWT(一)ASP.NETWebAPIJWT
- ASP.NET Core Web API中使用SwaggerASP.NETWebAPISwagger
- 讓ASP.NET Web API的Action方法ASP.NETWebAPI
- ASP.NET Core Web API 整合測試ASP.NETWebAPI
- ASP.NET Web Forms – Web 伺服器控制元件簡介ASP.NETWebORM伺服器控制元件
- 翻譯 - ASP.NET Core 基本知識 - Web 主機 (Web Host)ASP.NETWeb