0
Socket sock = new Socket(HOST, 80);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
writer.write("GET "+"......txt "+"HTTP/1.1\r\n"
            + "Host: HOST\r\n"
            + "Connection: keep-alive\r\n"
            + "\r\n");
writer.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(sock.getInputStream()));

String serverMsg = reader.readLine();
String line = "";
while((line = reader.readLine()) != null)
    System.out.println("answer: " + serverMsg);
4

2 に答える 2

0

もちろん、ソケットを使用して実行できますが、代わりにURL(および) を使用する方がはるかに便利です。URLConnection

URL url = new URL("http://url.of.your.webpage");
try (InputStream is = url.openStream()) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    String line = reader.readLine();
    while (line != null) {
        System.out.println(line);
        line = reader.readLine();
    }
}

この例では のみを使用していURL#openStream()ます。接続をさらに制御する必要がある場合は、URL#openConnection()代わりに次を使用します。

URL url = new URL("http://url.of.your.webpage");
URLConnection connection = url.openConnection();
// configure connection
connection.connect();
try (InputStream is = connection.getInputStream()) {
    // ...
}
于 2013-11-05T16:41:51.960 に答える
0

あなたの質問は非常に不明確であるため、推測するだけですが、変更してみてください:

while((line = reader.readLine()) != null)
    System.out.println("answer: " + serverMsg);

while((line = reader.readLine()) != null)
    System.out.println("answer: " + line);

投稿したコードでは、に割り当て続けてlineいますが、実際には印刷していません。

于 2013-11-05T16:41:55.483 に答える