2010-01-15 15 views
17

Diciamo che abbiamo una pagina Web con un modulo di input di ricerca, che invia i dati al server tramite HTTP GET. Questo significa che il server riceve i dati di ricerca tramite stringhe di query. L'utente può vedere l'URL e può anche inizializzare questa richiesta da solo (tramite URL + stringhe di query).Come simulare la richiesta POST HTTP del browser e acquisire i risultati in C#

Lo sappiamo tutti. Ecco la domanda

Cosa succede se questa pagina Web invia dati al server tramite HTTP POST? In che modo l'utente può inizializzare questa richiesta da solo?

Bene, so come catturare POST HTTP (ecco perché gli sniffer di rete sono per), ma come posso simulare questa richiesta HTTP POST da solo in un codice C#?

risposta

24

Si potrebbe dare un'occhiata alla classe WebClient. Esso consente di inviare i dati a un URL arbitrario:

using (var client = new WebClient()) 
{ 
    var dataToPost = Encoding.Default.GetBytes("param1=value1&param2=value2"); 
    var result = client.UploadData("http://example.com", "POST", dataToPost); 
    // do something with the result 
} 

genererà la seguente richiesta:

POST/HTTP/1.1 
Host: example.com 
Content-Length: 27 
Expect: 100-continue 
Connection: Keep-Alive 

param1=value1&param2=value2 
Problemi correlati