例如,我有以下java代码:
URL u = new URL("http://google.com");
URLConnection c = u.openConnection();
InputStream s = c.getInputStream();
int i;
while ((i = s.read()) != -1) {
//do something here
}
我无法理解,在哪个时刻(在方法调用之后)java将实际请求发送到服务器?
答案 0 :(得分:6)
URL类的openConnection()方法,只返回HttpUrlConnection的新实例(因为您的协议是http)。 在您调用getInputStream()或getOutputStream()方法之前,实际连接会发生。这些方法的调用是调用connect()并且谷歌服务器接收连接。并且因为协议是http,服务器会返回您正在使用s.read()阅读的Google主页。 (它应该给你google主页的html页面)
答案 1 :(得分:2)
它发生在openConnection()
方法中。您可以通过阅读documentation
每次通过调用此URL的协议处理程序的openConnection方法打开一个新连接。
答案 2 :(得分:1)
当您致电openConnection
时,它实际上是在尝试使用指定的网址创建连接,如果失败,则会抛出IOException
。
openConnection - 每次通过调用此URL的协议处理程序的openConnection方法打开新连接。