URLConnection schließen ?

Status
Nicht offen für weitere Antworten.

JSteinhilber

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

Code:
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
 
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()
 
Hallo gex,
herzlichen Dank für Deine Hilfe.

Mein Code sieht so aus.
Code:
		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
 
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.
 
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
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben