2012-07-09 9 views
10

Wir haben die Folowing Link: http://mvp.sos.state.ga.us/Wie verwende ich MSXML2.ServerXMLHTTP, um Daten von einer anderen Site zu erfassen?

Anstatt eine db erstellen, um Informationen zu replizieren, dass MVP Seite würden wir unsere eigene Form verwenden möchten, und dann hinter den Kulissen, über Informationen an die Website senden Ergebnisse zurück Verwenden der Komponente namens MSXML2.ServerXMLHTTP.

Leider weiß ich nichts über diese Komponente oder wie man sie benutzt.

Würde jemand freundlich genug sein, bitte geben Sie mir Hinweise, wie Sie unsere eigenen ... verwenden, um Informationen an die Website oben zu senden und Ergebnisse zu unserem Formular zu erhalten?

Wir versuchen im Grunde, Benutzer zu ersten, Nachnamen, Landkreis, Geburtsdatum zu bekommen.

Dank

Antwort

22

Sie diese Komponente für http-Anfragen wie "POST", "GET", "LÖSCHEN" usw.

So erstellen Sie das Objekt verwenden können:

<% 
    Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") 
%> 

So senden Sie Daten mit der Methode "GET":

<% 
    objXML.Open "GET", "http://mvp.sos.state.ga.us/?some=querystring", false 
    objXML.Send "" 
    Response.Write objXML.responseText 
%> 

Beachten Sie, dass die Open-Methode 3 Parameter hat: HTTP-Methode, URL, asynchroner Aufruf.

Beachten Sie, dass die Send-Methode bei einem "GET" ihren Parameter ignoriert. (In diesem Fall passieren wir Parameter über die URL.)

Daten zu senden, mit der Methode "POST":

<% 
    objXML.Open "POST", "http://mvp.sos.state.ga.us/", false 
    objXML.Send "username=htbasaran&password=somepassword" 
    Response.Write objXML.responseText 
%> 

Hinweis für "POST", die Methode Send gibt Parameter in Schlüssel-Wert-Paaren Format wie: key1 = value1 & key2 = Wert2 & so = auf ... oder andere Daten wie XML, JSON, etc.)

Dies sind die Grundlagen dieser Komponente. Wenn Sie weitere Informationen benötigen, können Sie microsoft's docs page überprüfen.

Ein Beispielcode zum Abrufen von Formularwerten und Senden mit der xmlhttp post-Methode.

<% 
    ' getting form values 
    my_uname = Request.Form("username") 
    my_pword = Request.Form("password") 

    ' creating object 
    Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") 

    ' sending variables to an external site 
    objXML.Open "POST", "http://www.sitename.com/login.asp", false 
    objXML.Send "username=" & my_uname & "&password=" & my_pword 

    ' Assuming that successful login will return response "Ok" 
    ' writing the result to the client. 
    if objXML.responseText="Ok" then 
     Response.Write "Login Successful!" 
    else 
     Response.Write "Login Failed!" 
    end if 
%> 
+1

Dieser Code ist beschädigt. Beim Aufrufen von Methoden als Anweisungen sollten keine Klammern gesetzt werden. Auch das "POST" -Beispiel sollte den Content-Type-Header setzen. – AnthonyWJones

+0

Vorausgesetzt, dass ich versuche, dies zu tun, um Daten von einer Website mit asp.net zu erstellen, ist dies noch möglich? –

+0

@AnthonyWJones an einem Punkt haben Sie Recht, aber überhaupt nicht. Ich arbeite mit JScript Asp-Seiten, so dass dieser Code für JScript asp, aber VBScript gültig ist. Jedenfalls werde ich die Antwort bearbeiten und die Klammern entfernen. – htbasaran

Verwandte Themen