2010-10-28 2 views
0

У меня есть следующий код, чтобы захватить детали с веб-сервераПроблемы с XMLHTTP

<%@ LANGUAGE=VBScript%> 
<% 
vCustomerUserName = "name" 
vCustomerPassword = "password" 
vEventID = 123456 
vEmail = "[email protected]" 
vPassword = "1122334455" 

Response.Buffer=False 

Dim MyConnection 
Dim TheURL 

''# Specifying the URL 
dataURL = "http://www.regonline.com/authorization.asmx/authorizeMemberWithEmailAddress" 

Set MyConnection = Server.CreateObject("Microsoft.XMLHTTP") 
''# Connecting to the URL 
MyConnection.Open "POST", dataURL, False 
MyConnection.setRequestHeader "Content-type", "application/x-www-form-urlencoded" 

''# Sending and getting data 
strQueryString = "customerUserName=" & vCustomerUserName & "&customerPassword=" & vCustomerPassword & "&eventID=" & vEventID & "&emailAddress=" & vEmail & "&password=" & vPassword 

''# MyConnection.Send 
MyConnection.Send strQueryString 

TheData = MyConnection.responseText 

''# Set the appropriate content type 
Response.ContentType = MyConnection.getResponseHeader("Content-type") 


Response.Write (TheData) 

Set MyConnection = Nothing 
%> 

Если я запускаю эту страницу в браузере она возвращает то, что, как представляется, XML-документ. Что мне нужно сделать, это извлечь значение конкретного узла, а затем отправить его в браузер в виде

response.write firstName=bob&lastName=smith 

Может кто-нибудь, пожалуйста, помогите мне это сводит меня с ума, и потребовалось много времени, до сих пор, чтобы получить нет нигде. Кажется, я не могу получить ответ от сервера в виде XML-документа и был бы признателен за любую помощь.

Благодаря

ответ

1

Вы можете использовать responseXML свойство вместо responseText. Это экземпляр объекта IXMLDOMDocument. Затем вы можете использовать XPath, чтобы выбрать нужные данные с помощью метода selectSingleNode.

Это не будет работать, если тип содержимого ответа не установлен в text/xml или application/xml. Если это так, вы все равно можете использовать MSXML для загрузки responseText в DOMDocument и выбора необходимых данных.

Следует отметить, что обычно не рекомендуется использовать объект XMLHTTP из приложения на стороне сервера. Он предназначен для использования с клиентской стороны, потому что в зависимости от WinInet. Вместо этого вы должны использовать ServerXMLHttp. Он имеет ту же функциональность, но зависит от WinHTTP, а не от WinInet. См. FAQ для получения дополнительной информации.