Posting Form Data to Remote Site using HttpWebRequest

Last Updated June 2, 2023 by . First Published in 2011.

Posting Form Data to Remote Site using HttpWebRequest

Easily send data using HttpWebRequest Post. The data is sent via the HTTP POST method to a remote server from your code behind.

The HttpWebRequest class supports the WebRequest properties and methods, as well as extra properties and methods that allow the user to connect directly with servers over HTTP(S).

This global code snippet for using HttpWebRequest to post data to a server can be used from a code behind a web form, console application or Windows form application.

Do not use the HttpWebRequest constructor. Make use of the WebRequest.Create a method instead for creating new HttpWebRequest objects. WebRequest.Create returns a HttpWebRequest object if the scheme for the Uniform Resource Identifier (URI) is http:// or https://.

The below example is for sending Web-to-Lead data to Salesforce by posting the data to an API endpoint.

C#
string oid = "364826B3-7D29-4C2E-9568-C318C2B45F0C";
string retURL = CurrentPage.Url;
string remoteUrl = https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8";
string name = Request.Form["name"];
string email = Request.Form["email"];

// Setup the POST data
string poststring = String.Format("oid={0}&retURL={1}&name={2}&email={3}", oid, retURL, name, email);
HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(remoteUrl);

httpRequest.Method = "POST";
httpRequest.ContentType = "application/x-www-form-urlencoded";

// Convert the post string to a byte array
byte[] bytedata = System.Text.Encoding.UTF8.GetBytes(poststring);
httpRequest.ContentLength = bytedata.Length;

// Create the stream
Stream requestStream = httpRequest.GetRequestStream();
requestStream.Write(bytedata, 0, bytedata.Length);
requestStream.Close();

// Get the response from remote server
HttpWebResponse httpWebResponse = (HttpWebResponse)httpRequest.GetResponse();
Stream responseStream = httpWebResponse.GetResponseStream();

System.Text.StringBuilder sb = new System.Text.StringBuilder();
using (StreamReader reader = new StreamReader(responseStream, System.Text.Encoding.UTF8))
{
    string line;
    while ((line = reader.ReadLine()) != null)
    {
        sb.Append(line);
    }
}

string serverResponse = sb.ToString();

Cookies are disabled by default for security reasons. Use the CookieContainer property to enable cookies if you want to use them.

Was this article helpful to you?
 
Comments

If you enjoyed reading this article, or it helped you in some way, all I ask in return is you leave a comment below or share this page with your friends. Thank you.

This post has 1 comment(s). Why not join the discussion!

We respect your privacy, and will not make your email public. Hashed email address may be checked against Gravatar service to retrieve avatars. This site uses Akismet to reduce spam. Learn how your comment data is processed.

  1. AS

    On Sunday 2nd of June 2019, asghar said

    hi how to set cookie on HttpWebRequest?