我试图编写一个简单的Java http客户端,只需输出一行服务器响应。我的问题是,我没有得到服务器的回应。这里是我所拥有的,它正在编译和运行,没有明确的错误,它只是在我输入主机名后挂起,例如。 'www.google.com':
import java.io.*;
import java.net.*;
public class DNSTest {
// Constructor
public DNSTest() { }
// Builds GET request, opens socket, waits for response, closes
public static void main(String[] args) throws Exception{
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//For each hostname
while ((line = br.readLine()) != null){
//Resolve the hostname to an IP address
InetAddress ip = InetAddress.getByName(line);
//Open socket on ip address
Socket socket = new Socket(ip, 80);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//Send request
out.println("GET /index.html HTTP/1.0\n");
//Read one line of input
System.out.println("Response from "+line+": "+in.readLine());
}
}
}有什么建议么?请注意,这假设存在'index.html' - 即使这是真的,它仍然会挂起。