之后调用java的方法向服务器发送实际请求?

时间:2012-06-18 17:41:35

标签: java http connection request inputstream

例如,我有以下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将实际请求发送到服务器?

3 个答案:

答案 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方法打开新连接。