C# POST WebRequest

Mattepuffo's logo
C# POST WebRequest

C# POST WebRequest

In questo articolo avevamo visto che effettuare una WebRequest in C#.

Oggi vediamo come effettuare la stessa richiesta, ma inviando dati in POST.

Cambia poco, a parte il fatto che il metodo invierà dei dati al file remoto usando il metodo POST.

Quindi dovremmo fare alcune modifiche per codificare l'invio dei dati, e impostare il Method della richiesta.

Ecco qua un esempio:

        public static void launchService(string strFile)
        {
            string postData = "KEY=VALUE&KEY2=VALUE2";
            byte[] data = Encoding.UTF8.GetBytes(postData);
            const int maxLenght = 1024;
            var buf = new char[maxLenght];
            var req = (HttpWebRequest)WebRequest.Create("http://www.sito.it/" + strFile);
            req.Method = "POST";
            req.ContentType = "application/x-www-form-urlencoded";
            req.ContentLength = data.Length;
            using (var stream = req.GetRequestStream()) {
                stream.Write(data, 0, data.Length);
            }
            var res = (HttpWebResponse)req.GetResponse();
            using (var stream = res.GetResponseStream()) {
                using (var reader = new StreamReader(stream)) {
                    int count = reader.Read(buf, 0, maxLenght);
                    while (count > 0) {
                        string output = new String(buf, 0, count);
                        Console.WriteLine(output);
                        count = reader.Read(buf, 0, maxLenght);
                    }    
                }
            }
        }

Prima di tutto impostiamo i valori da passare; come vedete la sintassi è la stessa della query-string in GET.

Poi codifichiamo la stringa usando Encoding.UTF8.GetBytes.

Più sotto indichiamo il Method da usare (POST appunto).

Infine inviamo la richiesta e leggiamo la risposta (che dipende dal quello che il file remoto ovviamente).

Inoltre ho usato l'istruzione using, in modo da chiudere automaticamente le risorse aperte.

Direi che è tutto qua!

Ciao!!


Condividi

1 Commenti

  • Anonimo

    Ciao so che questa pagina è molto vecchia ma volevo chiedere se qualcuno mi potesse aiutare perchè quando faccio partire il debug Visual Studio mi da l'errore CS5001 "Il programma non contiene un metodo "Main" statico appropriato per un punto d'ingresso"

    04/01/2019

Commentami!