2012-04-21 20 views
21

Estoy tratando de hacer solicitudes web programáticamente en ASP.NET, utilizando el método POST.
Me gustaría enviar parámetros de POST con la solicitud web también. Algo como esto:¿Cómo pasar los parámetros POST a la solicitud web de ASP.Net?

WebRequest req = WebRequest.Create("accounts.craigslist.org/login/pstrdr"); 
    req.Method = "POST"; 
    req.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); 
    //WebRequest.Parameters.add("areaabb","hou"); 

obviamente la línea comentada no funciona. ¿Cómo logro esto?

Respuesta

53

Intenta así ...

string email = "YOUR EMAIL"; 
    string password = "YOUR PASSWORD"; 

    string URLAuth = "https://accounts.craigslist.org/login"; 
    string postString = string.Format("inputEmailHandle={0}&name={1}&inputPassword={2}", email, password); 

    const string contentType = "application/x-www-form-urlencoded"; 
    System.Net.ServicePointManager.Expect100Continue = false; 

    CookieContainer cookies = new CookieContainer(); 
    HttpWebRequest webRequest = WebRequest.Create(URLAuth) as HttpWebRequest; 
    webRequest.Method = "POST"; 
    webRequest.ContentType = contentType; 
    webRequest.CookieContainer = cookies; 
    webRequest.ContentLength = postString.Length; 
    webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1"; 
    webRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 
    webRequest.Referer = "https://accounts.craigslist.org"; 

    StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream()); 
    requestWriter.Write(postString); 
    requestWriter.Close(); 

    StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()); 
    string responseData = responseReader.ReadToEnd(); 

    responseReader.Close(); 
    webRequest.GetResponse().Close(); 
+0

Hola. Gracias por la respuesta y todo es perfecto, excepto que no recibo NINGUNA respuesta. Nada está impreso en la página. – jzeus

+0

bueno, podría agregar que Response.write() resolvió el problema. – jzeus

+0

@ V0R73X: ¿Quiere decir "responseData.Write()"? –

Cuestiones relacionadas