Follow me on Twitter at
FYI, I'm blogging most of my stuff over at More Wally now.
You might want to add my rss feed to your reader at:
Twitter API - Submit a post in C# - Wallace B. McClure

Wallace B. McClure

All About Wally McClure - The musings of Wallym on Web, HTML5, Mobile, Xamarin.iOS, Xamarin.Android, and Windows Azure.


Visual Studio Magazine Column Personal Blog


Book Authors




Georgia Tech Bloggers



Twitter API - Submit a post in C#

I used C# and WCF, but I could have just as easily used an ASMX web service.  This code is fairly simple.  No I didn't write it initially.  I found it online (Hey, we all have to start somewhere).  I massaged it a little to fit my needs and boom, here it is.  I have decided to leave the comments for the original code sample in the post.  Note: This code will not run as listed.  You have to have a password.  This code has that as a shared variable, but I'm not showing that to you, seriously.  I hope that this is of some help to you.

        public void SubmitUserStatus(string username, string tweet)
            // encode the username/password
            string user = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(username + ":" + password));
            // determine what we want to upload as a status
            byte[] bytes = System.Text.Encoding.ASCII.GetBytes("status=" + tweet);
            // connect with the update page
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("");
            // set the method to POST
            request.Method = "POST";
            // thanks to argodev for this recent change!
            request.ServicePoint.Expect100Continue = false;
            // set the authorisation levels
            request.Headers.Add("Authorization", "Basic " + user);
            request.ContentType = "application/x-www-form-urlencoded";
            // set the length of the content
            request.ContentLength = bytes.Length;
            // set up the stream
            Stream reqStream = request.GetRequestStream();
            // write to the stream
            reqStream.Write(bytes, 0, bytes.Length);
            // close the stream

Original Url:


webbes said:

You should definately not use the WebClient class for this. This would reduce your code to three lines only.

# March 25, 2009 1:58 PM

odeits said:

You are using http and thus passing your username and password over plaintext. Try using https instead.

# May 18, 2011 12:57 PM