酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

@kagamiuta のブログを見てました / TwitterへのStatusの投稿

①post出来ない

ついったクライアントもどき作ってみた - かがぴーの雑記帳

POSTはStatusの投稿でいいのかな?

コメントに入れようと思ったんだけどコードが長くなってしまったので、トラックバックにしてみますね。

public bool PostStatus(string userID, string password, string status)
{
    string url = "http://twitter.com/statuses/update.xml";

    // 文字列をURIエスケープ表現へ変換
    string parm = "status=" + Uri.EscapeUriString(status);
    byte[] data = Encoding.ASCII.GetBytes(parm);

    // POSTメソッドで送信する為のあれこれ
    System.Net.HttpWebRequest webReq = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url);
    webReq.Method = "POST";
    webReq.ContentType = "application/x-www-form-urlencoded";
    webReq.ContentLength = data.Length;
    webReq.Credentials = new System.Net.NetworkCredential(userID, password);
    webReq.ServicePoint.Expect100Continue = false;

    // Postデータの書き込み
    System.IO.Stream reqStream = webReq.GetRequestStream();
    reqStream.Write(data, 0, data.Length);
    reqStream.Close();

    bool isSuccess = false;

    using (System.Net.HttpWebResponse webRes = (System.Net.HttpWebResponse)webReq.GetResponse())
    {
        if ((webRes.StatusCode == System.Net.HttpStatusCode.OK))
        {
            isSuccess = true;
        }
    }

    return isSuccess;
}

ボタンが押された時に、上記のStatus投稿用のメソッドを呼ぶようにしてみる。

private void button1_Click(object sender, EventArgs e)
{
    PostStatus("userID", "password", "てすと");
}

例外処理を入れていないので実際に使う場合には、適切にtry〜catchする必要がありますがこんな感じかなぁ。