получение xml от звонка другого сайта на пост ServerXMLHTTP в классическом asp - PullRequest
1 голос
/ 15 декабря 2008

Я записываю обе стороны веб-страницы 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() и / или * 1008. * методы.

Независимо от того, что я делаю, я не могу найти информацию, но я знаю, что она отправляется, потому что когда я изменяю тип контента на application/x-www-form-urlencoded, я могу видеть его в массиве request.form.

Так где же моя информация, когда тип контента text/xml?

1 Ответ

6 голосов
/ 16 декабря 2008

Когда вы устанавливаете тип содержимого "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
...