Socket s;
try {
s = new Socket(InetAddress.getByName("stackoverflow.com"), 80);
PrintWriter pw = new PrintWriter(s.getOutputStream());
pw.println("GET/HTTP/1.1");
pw.println("Host: stackoverflow.com");
pw.println();
pw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String t;
while((t = br.readLine()) != null)
System.out.println(t);
br.close();
} catch (IOException ex) {
Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
}
私はWhileループの問題だと思いますが、すべてのデータをフェッチした後にどのように停止するのか分かりません。BufferedReader Whileループの後にJavaプログラムがフリーズする
あなたはソケットを閉じ、その多くのバイトを読み、その後、応答ヘッダを読み、コンテンツの長さを見つける必要があります。接続が有効になっている可能性があり、別の要求を送信するのを待っています。代わりにHttpClientを使用してこれを行うのはなぜですか? http://hc.apache.org/httpcomponents-client-ga/ – BretC