# URLConnection schließen ?



## JSteinhilber (8. Okt 2008)

Guten Tag die Herrschaften,
ich habe heute zum ersten Mal mit Java eine Verbindung zu einer URL aufgebaut mit


```
URL url = new URL(surl);
URLConnection conn = url.openConnection();
/***schöne Dinge machen***
```

Jetzt habe ich nach einer Methode gesucht um diese "Connection" wieder zu schließen.
Erfolg -> 0

Muß man eine mit url.openConnection() geöffnete Verbindung nicht schließen ??

Herzlichen Dank für die Hilfe bereits jetzt.

Gruß
Jürgen


----------



## gex (8. Okt 2008)

Was geöffnet wird, sollte auch geschlossen werden, soweit wie möglich.

Wenn du von einem URL Objekt über openConnection() eine URLConnection beziehst, so erhälst du bspw. 
eine HttpUrlConnection wenn das Protokoll der URL http ist, gleichermassen bei jar.

Wichtig ist, dass du alle von dieser URLConnection bezogenen Streams schliesst.

Wenn du weisst, dass es eine HttpUrlConnection sein wird, die du zurückerhälst, so kannst du diese casten und 
entsprechend noch disconnect() aufrufen.

http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html#openConnection()

http://java.sun.com/j2se/1.5.0/docs/api/java/net/HttpURLConnection.html#disconnect()


----------



## JSteinhilber (8. Okt 2008)

Hallo gex,
herzlichen Dank für Deine Hilfe.

Mein Code sieht so aus.

```
URL url = new URL(urltext);
		      URLConnection conn = url.openConnection();
		      BufferedReader inS = new BufferedReader( new InputStreamReader( conn.getInputStream() ));
		      int durchlauf = 0;
		      while ( (text  = inS.readLine())!= null ) {
		    	  String s = makeUTF8(text);
		          String [] spl = s.split(";");
		          if(durchlauf > 0){
		        	  Vector reihe = new Vector(Arrays.asList(spl));
		        	  ftm.addRow((Vector)reihe.clone());
		          }
		          ++durchlauf;
		      }
		inS.close();
```

Die Connection basiert ja schlußendlich auf einer einfachen Socket-Verbindung, und diese sollte doch irgendwie geschlossen werden.
Oder täusche ich mich?
Ich suche mir einen Wolf an den Hals nach "url.closeConnection()" - gibt's nicht,
"conn.disconnect()", gibt's  auch nicht. Ich kann den Krempel einfach nicht schließen.

Grüße an Dich
Jürgen


----------



## gex (8. Okt 2008)

Ohne mich zu sehr aus dem Fenster zu lehnen, aber die effektive Connection wird meines Errachtens erst hergestellt, wenn du dir bspw. einen InputStream holst - wenn du diesen danach schliesst, müsste die Connection weg sein.

Kannst dir ja mal die von java(w).exe geöffneten Sockets anschauen (netstat) - breakpoints setzen und Verhalten
beobachten.


----------



## JSteinhilber (8. Okt 2008)

Hi gex,
bitte jetzt nicht lachen (oder weinen) - aber kannst Du mir erklären wie ich mir den netstat(us) anschauen kann, bzw. wie ich breakpoints setze?
(Ich arbeite mit Eclipse als Java-Entwicklungsumgebung)

Gruß
Jürgen


----------



## gex (8. Okt 2008)

Dafür sonst Google benutzen...

http://www.nwlab.net/tutorials/netstat/offene-ports-netstat.html
http://bioinfoblog.de/bereiche/informatik-teil/2007/06/25/debuggen-mit-eclipse/


----------



## JSteinhilber (9. Okt 2008)

Klasse gex,
herzlichen Dank.

Gruß
Jürgen


----------

