@ledsun blog

無味の味は佳境に入らざればすなわち知れず

System.Webを使わずにTwitterで発言する

WebClientの代わりにWebRequestを使い、HttpUtility.UrlEncodeの代わりにUri.EscapeUriStringを使うとSystem.webへの参照を追加する必要がなくなります。WebRequestはデフォルトでGETメソッドを使うため明示的にPOSTメソッドを指定する必要があります。

using System;
using System.Text;
using System.Net;

class Program
{
    static void Main(string[] args)
    {
        Tweet("C#のクライアントから送信");
    }

    private static void Tweet(string msg)
    {
        WebRequest r = WebRequest.Create("http://twitter.com/statuses/update.xml?status=" + Uri.EscapeUriString(msg));
        r.Credentials = new NetworkCredential("ledsun", "XXXXXXXX");
        r.Method = "POST";
        r.GetResponse().Close();;
    }
}

HttpUtility.UrlEncodeを使わない方法は下のページを参考にしました。
http://iseebi.half-done.net/?TechDoc%2FUrlEncodeWithoutHttpUtility

追記

r.GetResponse()で取得したレスポンスをクローズしないとHTTPセッションが終了しません。