ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
876
876
EMPFEHLEN
-
Hallo zusammen,
kann mir jemand sagen warum HttpUrlConnection Object manchmal direkt nach dem anlegen bereits verbunden sind?
Bsp.:
Code :1 2 3 4 5 6 7 8 9 10
try{ URL url = new URL("http:\\tutorials.de"); HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); //jetzt ist httpCon connected bereits true //so das setRequestMetho fehlschlägt httpCon.setRequestMethod("GET"); } catch(Exception ex){ // already connected }
Wie kann das sein? Mir ist bekannt das einige Funktionen selbst einen Connect durchführen, sofern noch nicht geschehen, aber die setRequestMethod definitiv nicht!
Noch ein Hinweis, ich arbeite mit Java 1.4 (J2ME)
schöne Grüße
DoppelD
-
Du rufst in deinem gezeigten Code zwei Methoden auf und sagst, dass "setRequestMethod" definitiv kein Connect durchführt. Die andere Methode, deren Name "openConnection" ist, lässt vermuten, dass dort die Verbindung geöffnet wird. Und die Dokumentation bestätigt diese Vermutung. http://download.oracle.com/javase/1....nnection%28%29
Ich hab es nicht getestet, aber so müsste es richtig aussehen:
Code java:1 2 3 4 5 6 7 8 9 10 11 12
try{ URL url = new URL("http:\\tutorials.de"); HttpURLConnection httpCon = new HttpURLConnection(url); httpCon.setRequestMethod("GET"); httpCon.connect(); } catch(Exception ex){ // already connected }
-
da muss ich leider wiedersprechen, eine Instanz von einer HttpURLConnection bekomme ich nur über ULR.openConnection, da HttpURLConnection keinen öffentlichen Konstruktor hat. (http://download.oracle.com/javase/1.4.2/docs/api/java/net/HttpURLConnection.html#HttpURLConnection(java.net.URL))
Durch url.openConnection sollte lediglich eine Socketverbindung hergestellt werden, die liegt ja darunter hat mit der HTTP Verbindung aber noch lange nix zu tun.
Wie gesagt manchmal geht's ja auch.
Im übrigen wird's hier http://download.oracle.com/javase/tu...ngWriting.html im Beispiel gleich verwendet. Hier wird halt ein setDoOutput aufruf verwendet, der würde aber bei mir zu der gleichen Exception führen.
mfg
-
Ok, ich nehm meine Aussagen nochmal zurück. Vielleicht kann dir jemand anderes dabei helfen.
Aber es kann nicht schaden die genaue Exception noch zu posten.
-
Daran soll es nicht scheitern, hier bitte:
"java.net.ProtocolException: Can't reset method: already connected"
Auch wenn ich nicht glaube das uns das weiterhilft, weil warum sie geworfen wird ist mir klar weil das HttpURLConneciton object connected ist und dann versucht wird zu manipulieren, das Problem ist nur das es zu diesem Zeitpunkt eigentlich gar nicht connected sein dürfte!
Achso wenn ich abfrage ob es connected ist und dann einen disconnect mache klappt das logischerweise auch mit der RequestMethod. Ich will nur verstehen warum ich ein bereits verbundenes Object bekomme.
-
Jetzt wirds ganz Kurios:
Code java:1 2 3
URL url = new URL(_webAddress); httpCon = (HttpURLConnection)url.openConnection(); _httpCon = (HttpURLConnection)url.openConnection();
httpCon ist eine lokale Varbiable connected == false // OK
_httpCon ist ein Member connected == true;
Es wird noch besser:
Code java:1
_httpCon = httpCon;
Jetzt ist httpCon auch Connected!
Muss ich das verstehen, kann mir das jemand erklären?
Vielen Dank und schöne Grüße
Ähnliche Themen
-
send File mit HttpURLConnection geht nicht
Von xrax im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 28.05.10, 11:04 -
Code 414 bei HttpURLConnection POST
Von xrax im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 6Letzter Beitrag: 26.05.10, 09:38 -
HttpURLConnection - reusing Inputstream
Von yigiter im Forum JavaAntworten: 1Letzter Beitrag: 29.04.09, 22:25 -
Client IP festlegen bei HttpURLConnection
Von Mindwinder im Forum JavaAntworten: 7Letzter Beitrag: 01.12.06, 00:11 -
Help, auf webseite über HTTPUrlConnection und POST einloggen
Von Moonblood im Forum JavaAntworten: 1Letzter Beitrag: 12.10.04, 12:05





Zitieren

Login





