ASP实现从远程服务器上接收XML数据
request.asp页面
<%
dim Https
set Https=server.createobject("MSXML2.XMLHTTP")
'定义一个XMLHTTP对像
Https.open"POST","http://127.0.0.1/response.asp",false
Https.send"<?xml version=""1.0""?><misc_command version=""1.0""><command_name>echo</command_name><command_data_block><sid>123456</sid><service_id>987654</service_id><sp_id>11111</sp_id><sp_password>www.QQView.com</sp_password></command_data_block></misc_command>"
if Https.readystate=4then
response.write"提交成功"
'readstate读取状态为4则成功,继续后面的,不成功当然就不用继续处理了
dim objstream
set objstream=Server.CreateObject("adodb.stream")
'定义一个stream,因为读过来的直接拿出来是乱码的,所以得处理一下
objstream.Type=1
objstream.Mode=3
objstream.Open
objstream.Write Https.responseBody
objstream.Position=0
objstream.Type=2
objstream.Charset="GB2312"
html=objstream.ReadText
'转好码,就放到html里,好关闭这些对像
objstream.Close
set objstream=nothing
set https=nothing
end if
response.write html
%>
response.asp页面<%
Set xml=Server.CreateObject("msxml2.DOMDocument")
xml.async=False
'装载POST数据
xml.Load Request
If xml.parseError.errorCode<>0Then
response.write"不能正确接收数据"&"Description:"&xml.parseError.reason&"<br>Line:"&xml.parseError.Line
End If
set blogchild=xml.getElementsByTagName("misc_command")
the_text=blogchild.item(0).childnodes(1).childnodes(0).text
response.write the_text
set blogchild=nothing
set xml=nothing
%>或者<%
Set objXML=Server.CreateObject("msxml2.DOMDocument")
objXML.async=False
'装载POST数据
objXML.Load Request
if objXML.ParseError.errorCode<>0then
Response.Write("Error:"&objXML.parseError.reason&"<br>")
Response.Write("Code:0x"&hex(objXML.parseError.errorCode)&"<br>")
Response.Write("At Line:"&objXML.parseError.line&"<br>")
Response.Write("At pos:"&objXML.parseError.linePos&"<br>")
else
set objRootElement=objXML.documentElement
if not isObject(objRootElement)then
Response.Write("no file loaded")
else
Response.Write(objRootElement.childnodes(1).childnodes(1).text)
end if
set objRootElement=nothing
end if
set objXML=nothing
%>