dsynkd
dsynkd

Reputation: 2145

How to pass POST parameters to ASP.Net web request?

I'm trying to make web requests programmatically in ASP.NET, using the POST method.
I'd like to send POST parameters with the web request as well. Something like this:

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");

obviously the commented line does not work. How do I achieve this?

Upvotes: 22

Views: 98837

Answers (1)

Nesim Razon
Nesim Razon

Reputation: 9794

Try like this...

  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();

Upvotes: 62

Related Questions