RSS

C#: Simple HTTP Client

23 11月

 

 

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

// 単純なHTTPクライアント
public class HttpClient : TcpClient
{
 private NetworkStream ns;
 private byte[] buffer = new byte[20000];

 // コンストラクタ(1)
 public HttpClient(string host) : base(host, 80)
 {
 }

 // コンストラクタ(2)
 public HttpClient(string host, int port) : base(host, port)
 {
 }

 // テキストをサーバへ送る
 protected void SendText(string text)
 {
 byte[] byteArray = Encoding.ASCII.GetBytes(text);
 this.ns.Write(byteArray, 0, byteArray.Length);
 }

 // テキストをサーバから受信する
 protected string ReceiveText()
 {
 int len = this.ns.Read(buffer, 0, buffer.Length);
 string str = Encoding.ASCII.GetString(buffer, 0, len);
 return str;
 }

 // GETコマンドを実行する
 public string Get(string pathname)
 {
 ns = this.GetStream();

 // GETコマンドを構築
 StringBuilder cmd = new StringBuilder();
 cmd.Append("GET " + pathname + " HTTP/1.1\n");
 cmd.Append("Host: ");
 cmd.Append(Dns.GetHostName());
 cmd.Append("\n");
 cmd.Append("\n");
//        Console.WriteLine(cmd.ToString());

 // GETコマンドを送る
 SendText(cmd.ToString());

 // GETコマンドを受信する
 string result = ReceiveText();
 ns.Close();
 return result;
 }
}

 
コメントする

投稿者: : 2010/11/23 投稿先 C#

 

タグ: , , ,

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中