.NET Tips/HTTP Request
System.Net.WebRequest クラス、 System.Net.HttpWebResponse クラスを使用して Web サーバと対話する方法を示します。
WebRequest インスタンスを作成し、 WebRequest#GetResponse メソッドで HttpWebResponse インスタンスを取得します。
WebRequest#GetResponse メソッドは、 URL に応じた適切な WebRequest インスタンスを返します。この場合、 http:// を指定しているので HttpWebResponse インスタンスが返ります。
HttpWebResponse.StatusCode で Web サーバからのステータス コードを取得することができます。これは HttpStatusCode 列挙型で表されます。この列挙型の値は、実際のステータス コードになっています。例えば、 HttpStatusCode.OK == 200 です。
WebResponse#GetResponseStream メソッドを呼び出すと、 Web サーバからの応答を読み込む Stream インスタンスを取得することができます。この Stream インスタンスの Stream#Read メソッドを呼び出すと、 Web サーバからの応答を読み込むことができます。応答を全て読み込むと、ストリームは末尾に達し、 0 を返すようになります。応答の長さ (Content-Length) は WebResponse#ContentLength プロパティで取得することができます。
使い終わったら、 Stream インスタンス、及び HttpWebResponse インスタンスを閉じます。
要求
WebRequest インスタンスを作成し、 WebRequest#GetResponse メソッドで HttpWebResponse インスタンスを取得します。
WebRequest request = WebRequest.Create("http://www.google.co.jp/"); HttpWebResponse response = (HttpWebResponse) request.GetResponse();
WebRequest#GetResponse メソッドは、 URL に応じた適切な WebRequest インスタンスを返します。この場合、 http:// を指定しているので HttpWebResponse インスタンスが返ります。
HttpWebResponse.StatusCode で Web サーバからのステータス コードを取得することができます。これは HttpStatusCode 列挙型で表されます。この列挙型の値は、実際のステータス コードになっています。例えば、 HttpStatusCode.OK == 200 です。
データの取得
WebResponse#GetResponseStream メソッドを呼び出すと、 Web サーバからの応答を読み込む Stream インスタンスを取得することができます。この Stream インスタンスの Stream#Read メソッドを呼び出すと、 Web サーバからの応答を読み込むことができます。応答を全て読み込むと、ストリームは末尾に達し、 0 を返すようになります。応答の長さ (Content-Length) は WebResponse#ContentLength プロパティで取得することができます。
byte[] data = new byte[response.ContentLength]; int current = 0; while (true) { byte[] buf = new byte[1024]; int len = stream.Read(buf, 0, buf.Length); if (len == 0) { break; } else { Array.Copy(buf, 0, data, current, len); current += len; } }
閉じる
使い終わったら、 Stream インスタンス、及び HttpWebResponse インスタンスを閉じます。
stream.Close(); response.Close();
2005年12月25日(日) 20:13:18 Modified by uguuxp