日期:2014-05-20  浏览次数:20693 次

HttpURLConnection何时发送的问题
Java code

 URL url = new URL("http://www.xxx.com/11.jpg");
 HttpURLConnection conn = (HttpURLConnection) url.openConnection();
 conn.setConnectTimeout(4000);
 conn.setRequestMethod("GET");
 InputStream is = conn.getInputStream();


我的疑问是,openConnection的时候已经发送连接请求了,那么后面的setConnectTimeout和setRequestMethod应该起不了作用了啊。

------解决方案--------------------
当第一构造URLConnection时,它是未连接的;即本地和远程主机无法收发数据。connect()方法在本地和远程主机之间建立一个连接。不过,getInputStream()、getContent()、getHeaderField()和其他要求先将连接打开的方法,都会在连接未打开时(自行)调用connect()。

所以url.openConnection时并没有建立真正的连接