piu o meno è questo
occhio ai cast, bisogna farli perche altrimenti i metodi ritornano oggetti delle classi base HttpRequest e HttResponse e non del tipo derivato HttpWebRequet...
codice:
//i dati post hanno lo stesso formato di una querystring ma vanno codificati in ascii in un array di byte
byte[] post = new ASCIIEncoding().GetBytes("dato1="+dato1+"&dato2="+dato2);
//crei l'oggetto per effettuare la request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.serverB.com/pagina.aspx");
//imposti l'head della richiesta, questi tre sono obbligatori
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = post.Length;
//scrivi i dati nello stream della richiesta, è in questo momento che vengono inviati
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(post,0,post.Length);
}
//leggi la risposta
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (Stream responseStream = response.GetResponseStream())
{
//responseStream contiene l'array di byte del file zip.
}