HTTP クライアント

  基本的には,C/C++ の場合と同じですが,Java の場合は,Socket クラスのコンストラクタだけで簡単にソケット接続が可能です.なお,このプログラムでは,サーバへの要求を一つの文字列にまとめて送信しています.

/****************************/
/* HTTP クライアント        */
/*      coded by Y.Suganuma */
/****************************/
import java.io.*;
import java.net.*;

public class Test
{
	public static void main(String[] args)
	{
		new Connect("informatics.sist.ac.jp").start();
	}
}

class Connect extends Thread
{
	private String hostname;

	public Connect(String hostname_i)
	{
		hostname = hostname_i;   // ホスト名
	}

	public void run()
	{
		try {
			int port = 80;   // ポート番号
					// 接続
			Socket s = new Socket(hostname, port);
					// 送信内容の指定(サーバに対するリクエスト)
			BufferedOutputStream out = new BufferedOutputStream(s.getOutputStream());
			String buf = "GET /suganuma/master.css HTTP/1.1\r\nHost: " + hostname + ":" + Integer.toString(port) + "\r\n\r\n";
			char str[] = buf.toCharArray();
			for (int i1 = 0; i1 < str.length; i1++)
				out.write(str[i1]);
			out.flush();
					// 受信内容の表示
			BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
			while ((buf = in.readLine()) != null)
				System.out.println(buf);
			s.close();
		}

		catch (IOException e) {
			System.out.println("Error : " + e);
			System.exit(1);
		}
	}
}