2013-04-20 27 views
24

Mam problem z rozumieniem znaczenia metody connect() w klasie URLConnection. W poniższym kodzie, jeśli użyję metody connect(), otrzymam taki sam wynik, jeśli go nie używam.Java URLConnection - Kiedy należy użyć metody connect()?

Dlaczego (lub kiedy) potrzebuję go użyć?

URL u = new URL("http://example.com"); 
HttpURLConnection conn = (HttpURLConnection) u.openConnection(); 

conn.connect();//with or without it I have the same result 

InputStream in = conn.getInputStream(); 
int b; 
while ((b = in.read()) != -1) { 
System.out.write(b); 
} 

Odpowiedz

25

Nie zawsze wymagane jest jawne wywołanie metody connect w celu zainicjowania połączenia.

Operacje zależne od połączenia, takie jak getInputStream, getOutputStream itp., Będą domyślnie wykonywać połączenie, jeśli to konieczne.

Oto doc Oracle link

22
HttpURLConnection conn = (HttpURLConnection) u.openConnection(); 

tworzy tylko przedmiotem

connect() metoda jest wywoływana przez conn.getInputStream();

+2

całkiem poprawne. Downvoter proszę wyjaśnić. +1 – EJP