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);
问问题
584 次
2 回答
0
URL
当然,使用套接字是可行的,使用(and 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 回答