2010-10-28 16 views
0

j'ai le code suivant pour saisir les détails d'un serveur WebProblèmes avec 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 
%> 

Si je lance cette page dans un navigateur, il retourne ce qui semble être un document XML. Ce que je dois faire est extrait la valeur d'un noeud particulier, puis envoyer que le navigateur sous la forme

response.write firstName=bob&lastName=smith 

Quelqu'un pourrait-il s'il vous plaît aidez-moi cela me rend fou et a pris un temps LONG jusqu'à présent pour obtenir nulle part. Je ne semble pas être en mesure d'accéder à la réponse du serveur en tant que document XML et apprécierait toute aide.

Merci

Répondre

1

Vous pouvez utiliser la propriété responseXML au lieu de responseText. C'est une instance d'un objet IXMLDOMDocument. Vous pouvez ensuite utiliser XPath pour sélectionner les données dont vous avez besoin via la méthode selectSingleNode.

Cela ne fonctionnera pas si le type de contenu de la réponse n'est pas défini sur text/xml ou application/xml. Si c'est le cas, vous pouvez toujours utiliser MSXML pour charger le responseText dans un DOMDocument et sélectionner les données dont vous avez besoin.

Une autre chose à noter est qu'il n'est généralement pas recommandé d'utiliser l'obtectif XMLHTTP d'une application côté serveur. Il est destiné à être utilisé du côté client, car dépend de WinInet. Vous devriez plutôt utiliser ServerXMLHttp. Il a la même fonctionnalité, mais dépend de WinHTTP par opposition à WinInet. Voir le FAQ pour plus d'informations.