2012-07-09 6 views
10

Abbiamo il link folowing: http://mvp.sos.state.ga.us/Come utilizzare MSXML2.ServerXMLHTTP per prelevare dati da un altro sito?

Piuttosto che creare un db per replicare le informazioni che la pagina MVP, vorremmo utilizzare il nostro modulo, e poi dietro le quinte, inviare informazioni al sito di cui sopra per ottenere risultati indietro utilizzando il componente chiamato MSXML2.ServerXMLHTTP.

Sfortunatamente, non so nulla di questo componente o di come utilizzarlo.

Qualcuno potrebbe essere così gentile da darmi dei suggerimenti su come utilizzare il nostro ... per inviare informazioni al sito sopra e ottenere risultati di ritorno al nostro modulo?

Principalmente stiamo provando a convincere gli utenti a inserire prima il cognome, il cognome, la contea, la data di nascita.

Grazie

risposta

22

È possibile utilizzare questo componente per http-domande come "POST", "GET", "Cancella" ecc

per creare l'oggetto:

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

Per inviare dati utilizzando il metodo "GET":

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

Nota che il metodo Open ha 3 parametri: Metodo HTTP, URL, chiamata asincrona.

Nota che il metodo di invio su "GET" ignora il suo parametro. (In questo caso stiamo passando i parametri tramite l'URL.)

per inviare i dati usando il metodo "POST":

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

Nota per "POST" che inviano metodo passa parametri in coppie chiave-valore formato come: chiave1 = valore1 & chiave2 = valore2 & così = on ... o altri dati come XML, JSON, ecc)

Queste sono le basi di questo componente. Se hai bisogno di ulteriori informazioni, puoi controllare microsoft's docs page.

Un codice di esempio per ottenere i valori del modulo e inviarli utilizzando il metodo xmlhttp post.

<% 
    ' 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

Questo codice è rotto. Le paratee non dovrebbero essere fatte quando si chiamano metodi come dichiarazioni. Anche l'esempio "POST" dovrebbe essere l'impostazione dell'intestazione Content-Type. – AnthonyWJones

+0

Dato che sto cercando di fare questo per ottenere dati da un sito costruito con asp.net, è ancora possibile? –

+0

@AnthonyWJones a un certo punto hai ragione, ma non del tutto. Sto lavorando con le pagine JScript Asp quindi questo codice è valido per JScript asp ma VBScript. Ad ogni modo modifico la risposta e rimuovo le parate. – htbasaran