HttpWebRequest の使用例 ~ 簡単に HTTP リクエストを送る
ふとみたら昔書いた HttpWebRequest を用いたコードがありました。
ファイルのタイムスタンプを見ると、2002年の4月ですから早いものでもうあれから7年近く経っているのですね・・・
と、感慨深かったのでサイトに載せてみました。
using System; using System.IO; using System.Net; using System.Text; class HttpWebReqApp { static void Main() { //HTTP Web リクエストの作成 HttpWebRequest wreq = (HttpWebRequest) WebRequest.Create( "http://www.microsoft.com"); WebResponse wrep = wreq.GetResponse(); Stream s = wrep.GetResponseStream(); //読み込むバッファを用意 Byte[] buff = new Byte[1024]; int iread = 0; StringBuilder sb = new StringBuilder(); //ストリームから読み込む... while((iread = s.Read(buff, 0, buff.Length)) > 0) { sb.Append(Encoding.Default.GetString(buff, 0, iread)); Console.Write("."); } Console.Write("\n"); //クリーンアップ s.Close(); wrep.Close(); //出力 Console.WriteLine(sb.ToString()); } }
まぁ、感慨深くなくても僕が書いたコード、勉強したことは片っ端からこのサイトに載っけてしまおうという計画なんですけどね。
ちなみに、もう半年近くこのサイトのページを作り続けてますが、まだネタは尽きないです。
さて、HttpWebRequest を使った HTTP リクエストの送信です。
あまりネットワークプログラムに関わっていない人なら、こんな簡単に HTTP リクエストが送れるものかと結構驚きなのではないでしょうか。
上のコードを適当な名前で保存して、csc に渡してあげれば exe が出来ます。
僕はもともとソケットの方を使っていて、次にクライアント用のライブラリとしては WinInet なんかを使っていました。はじめて、このクラスを使った時は確かに簡単なのはいいけど、なんかつまらない、というか、物足りない感じがしたのを覚えています。
ただの好みの問題ですけどね。(その意味では WinInet も微妙ですが)
ちょっとややこしくても自由度が高いほうがいい、パフォーマンスがよくなるほうがいい、という気持ちなので、今でも .NET を極めてみようという気になれないんですよねぇ。