首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

ASP 利用 XMLHTTP 發送 SOAP 請求並處理回應 (第 3 部分)

     編輯:關於C語言

使用 ASP 發送 XMLHTTP 物件

在傳統 ASP 環境中,我們可透過 Msxml2.XMLHTTP 物件向 Web Service 發送 SOAP 訊息。以下為完整的發送與接收範例:

發送 SOAP 請求

Set xmlhttp = Server.CreateObject("Msxml2.XMLHTTP")
XMLhttp.Open "POST", url, False
xmlhttp.setRequestHeader "Content-Type", "text/XML;charset=utf-8"
XMLhttp.setRequestHeader "HOST", "s"
XMLhttp.setRequestHeader "Content-Length", LEN(SoapRequest)
XMLhttp.setRequestHeader "SOAPAction", "https://s"
XMLhttp.Send(SoapRequest)
Response.Write XMLhttp.Status & ""
Response.Write XMLhttp.StatusText
Set XMLhttp = Nothing

接收與解析回應

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

直接提取特定節點資料

若只需取得特定結果節點(如 LoginByAccountResult),可使用 XPath 直接讀取:

If XMLhttp.Status = 200 Then
    Set xmlDOC = Server.CreateObject("MSXML.DOMDocument")
    xmlDOC.load(xmlhttp.responseXML)
    Response.Write XMLDOC.documentElement.selectNodes("//LoginByAccountResult")(0).text
    Set XMLDOC = Nothing
Else
    Response.Write XMLhttp.Status & ""
    Response.Write XMLhttp.StatusText
End If

注意:當請求參數錯誤(如帳號、密碼不符)時,伺服器可能回傳不完整的 XML,導致解析失敗,建議搭配錯誤處理機制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved