从另一个网站调用经典asp中的ServerXMLHTTP帖子接收xml

时间:2008-12-15 18:10:45

标签: xml asp-classic serverxmlhttp

我正在将ASP网页的两面写到ASP网页对话中,其中原始网页将信息推送到接收网页,接收网页然后处理它并发回响应。原始网页必须使用以下代码开始讨论:

url = "www.receivingwebsite.com\asp\receivingwebpage.asp
information = "UserName=Colt&PassWord=Taylor&Data=100"
Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", url, false
xmlhttp.setRequestHeader "Content-Type", "text/xml"
xmlhttp.send information

...然后以某种方式接收页面中的ASP代码必须能够看到发送的信息。我已经尝试了我能想到的一切。该信息不在请求对象的querystring或表单数组中(因为内容类型为text/xml)并且我已尝试通过其{{domdocument将整个请求对象传递给load() 1}}和/或loadxml()方法。

无论我做什么,我都找不到相关信息,但我知道它正在发送,因为当我将内容类型更改为application/x-www-form-urlencoded时,我可以在request.form数组中看到它

当内容类型为text/xml时,我的信息在哪里?

1 个答案:

答案 0 :(得分:6)

当你将content-type设置为“text / xml”时,你真的需要将信息作为XML字符串发送,而不是名称 - 值列表。

url = "www.receivingwebsite.com\asp\receivingwebpage.asp"
information = "<Send><UserName>Colt</UserName><PassWord>Taylor</PassWord><Data>100</Data></Send>"
Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", url, false
xmlhttp.setRequestHeader "Content-Type", "text/xml" 
xmlhttp.send information

然后,在接收ASP页面中,您将按如下方式捕获XML:

Dim xmlDoc
Dim userName
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load(Request)
userName = xmlDoc.documentElement.selectSingleNode("UserName").firstChild.nodeValue