在ASP中,發送和接收XML數據可以使用以下方法:
Server.CreateObject("MSXML2.ServerXMLHTTP")
來創建。Send
方法。ResponseText
屬性獲取響應的文本。下面是一個示例代碼:
<%
dim xml, url, method, postData
' 創建XML對象
Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
' 設置請求的URL和方法
url = "http://example.com/endpoint"
method = "POST"
' 設置請求頭信息
xml.setRequestHeader "Content-Type", "text/xml"
xml.setRequestHeader "User-Agent", "ASP"
' 構建XML數據
postData = "<xml><data>Hello World</data></xml>"
' 發送請求
xml.open method, url, false
xml.send postData
' 獲取服務器返回的響應
Response.Write xml.ResponseText
' 釋放資源
Set xml = Nothing
%>
Request.InputStream
對象來接收XML數據。可以使用Request.BinaryRead
方法將輸入流的內容讀取為字節數組,然后再將字節數組轉換為字符串。Request.QueryString
對象來獲取XML數據,然后再進行處理。下面是一個接收XML數據的示例代碼:
<%
dim xmlData
' 接收POST請求的XML數據
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
xmlData = Request.BinaryRead(Request.TotalBytes)
xmlData = BytesToString(xmlData)
End If
' 接收GET請求的XML數據
If Request.ServerVariables("REQUEST_METHOD") = "GET" Then
xmlData = Request.QueryString("xmlData")
End If
' 處理XML數據
Response.Write "Received XML Data: " & xmlData
Function BytesToString(bytes)
Dim adoStream
Set adoStream = Server.CreateObject("ADODB.Stream")
adoStream.Type = 1 ' adTypeBinary
adoStream.Open
adoStream.Write bytes
adoStream.Position = 0
adoStream.Type = 2 ' adTypeText
adoStream.Charset = "UTF-8"
BytesToString = adoStream.ReadText
adoStream.Close
Set adoStream = Nothing
End Function
%>
注意:以上代碼僅作為示例參考,請根據實際需求進行調整。確保在使用Server.CreateObject
創建COM對象時,相關的COM組件已經注冊并可用。