HTTP URLConnection immer neu öffnen?

nrg

Top Contributor
hallo zusammen,

kurze frage und vermutlich auch schnell beantwortet: wenn ich einen http-wrapper schreibe, der nichts weiter macht, als ein oder mehrere posts an den server zu senden, sollte ich dann die connection/streams bei jedem post neu aufbauen? (also halte ich quasi als member nur die url und öffne bei jedem request eine neue urlconnection - gerade beim schreiben bezweifle ich auch irgendwie, dass es anders überhaupt funktioniert ;))

danke und grüße
 
Zuletzt bearbeitet:
N

nillehammer

Gast
Nein, das solltest Du alles über eine Connection machen. Dein Browser mach ja auch nicht für jeden neuen Post ins Java-forum eine neue Connection auf. Auf dem Stream rufst Du nach dem Ende Deiner Daten flush auf, das sorgt dafür, dass alles abgesendet wird und er für die nächsten Daten bereit ist. Ansonsten würd ich das garnicht selbst programmieren, sondern Bibilotheken dafür benutzen (httpClient von Apache bspw.).
 

nrg

Top Contributor
jo, httpclient habe ich mir auch schon überlegt. das halte ich nur für die anforderung deutlich zu hoch gegriffen (das bisschen hat man schnell selbst implementiert).
meinst du also, dass ich einmalig (im kontruktor oder in einer methode à la connect) die urlconnection und die streams öffne und dann immer darüber arbeite? ohne es jetzt getestet zu haben aber ist es nicht so, dass ich den inputstream erst nach dem request holen kann?
 
N

nillehammer

Gast
Wenn man sich die Beispiele im Internet so anschaut, könnte man meinen, dass Du Recht hast. Gib mir 'n Moment. Ich probier's grad mal aus und meld mich wieder...
 

nrg

Top Contributor
ok, danke. außerdem schließt sich ja auch die urlconnection implizit mit dem schließen der streams. ich könnte höchstens die urlconnection und den outputstream zuvor offen aber aufgrund dieser verbindungen habe ich eben die vermutung, dass eine connection, ein in- und ein outputstream in einem context zueinander stehen und es eben garnicht anders geht.
ich dachte, dass jemand vielleicht eine "best practice" für mich parat hat :)
 
N

nillehammer

Gast
Ich habe mich geirrt. Wenn man einmal eine HttoURLConnection mit allem gewünschtem initialisiert und connected hat, kann man daran nichts mehr verändern. Nach einem disconnect kann man zwar wieder Sachen verändern, aber nach einem erneuten Connect krieg ich eine Exception, wenn ich mir den InputStream holen will. Ich habe das mit der Arbeit mit Sockets verwechselt.:oops:
 
S

Spacerat

Gast
Ergänzend dazu: Request Cycle ? Wikipedia
Das bringt das HTTP-Protokoll so mit sich. Es basiert auf Request-Response-Zyklen. Nach jedem Zyklus wird die Verbindung durch den Server getrennt. Während ein Response unendlich sein darf (z.B. Radio-Stream o.ä.) darf dies ein Request nicht, weil der Response erst erfolgen kann, nachdem der Request (bzw. der Request-Header) vollständig gelesen wurde.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M HTTP URLConnection + BufferedReader killt meine Umlaute Netzwerkprogrammierung 4
U URLConnection mit lg/pw Netzwerkprogrammierung 2
C Java NIO Urlconnection Filetransfer Netzwerkprogrammierung 14
windl URLConnection unter 1.7 macht Probleme Netzwerkprogrammierung 14
B HTTP JSESSIONID in Http(s)URLConnection loswerden! Netzwerkprogrammierung 13
R HTTP Problem bei Authentifizierung über (Http)UrlConnection Netzwerkprogrammierung 2
H URLConnection - Browseranfrage nachbauen Netzwerkprogrammierung 2
E Parameter einer URLConnection Netzwerkprogrammierung 12
A [URLConnection] Bilder hochladen - aber anders! Netzwerkprogrammierung 4
J URLConnection schließen ? Netzwerkprogrammierung 6
D FTP Über URLConnection Netzwerkprogrammierung 7
R URLConnection via Proxy mit Authentification Netzwerkprogrammierung 5
S URLConnection über Proxy Netzwerkprogrammierung 4
D URLConnection + getLastModified Netzwerkprogrammierung 13
M erst POST dann Http-Request über URLConnection Netzwerkprogrammierung 3
meez Sockettimeout bei URLConnection Netzwerkprogrammierung 2
H Mail über URLConnection Netzwerkprogrammierung 8
S BufferedStream funktioniert nicht immer Netzwerkprogrammierung 7
Dann07 Audio streamen bricht immer ab nach kurzer Zeit Netzwerkprogrammierung 6
C Quelltext Webseite schlägt noch immer fehl Netzwerkprogrammierung 30
A Bestimmter URL/Certificate per Java immer vertrauen (Trustmanager/HostnameVerifier) Netzwerkprogrammierung 1
P Socket Server übertragung wird immer langsamer Netzwerkprogrammierung 4
S UDP Broadcast - Pakete kommen nicht immer an Netzwerkprogrammierung 15
G Server schickt immer null-Wert Netzwerkprogrammierung 5
M Dateidownload per FTP wird immer langsamer und bleibt dann stehen Netzwerkprogrammierung 3
1 Socket Immer offener Port? Netzwerkprogrammierung 11
N Socket Verbindung wird immer verweigert Netzwerkprogrammierung 5
T Tomcat zeigt immer nur eine Seite Netzwerkprogrammierung 3
T Socket immer Verbunden halten Netzwerkprogrammierung 11
A InputStream liest immer komplettes PHP-Script Netzwerkprogrammierung 6
C Dateiübertragung - Datei immer ein 4096faches von n Netzwerkprogrammierung 2
V Socket#getInputStream() immer der gleiche oder nicht? Netzwerkprogrammierung 4
M Socketverbindung funzt nich immer Netzwerkprogrammierung 3
N Socketkommunikation: Immer nur abwechselnd? Netzwerkprogrammierung 2
S ich bekomme immer java.rmi.UnmarshalException Netzwerkprogrammierung 10
J in.ready() liefert IMMER false zurück Netzwerkprogrammierung 11
G immer wieder gleiche Sockets Netzwerkprogrammierung 2
E BufferedReader.ready() immer false Netzwerkprogrammierung 8
MaxG. Website in Swing öffnen Netzwerkprogrammierung 4
J HTTP Befehl via HTTP senden ohne Browser öffnen Netzwerkprogrammierung 3
G HTTP URL öffnen schlägt fehl Netzwerkprogrammierung 3
F FTP FTPClient Datei lässt sich nicht öffnen Netzwerkprogrammierung 4
Dit_ FTP Download | "PassiveMode"-Socket öffnen Netzwerkprogrammierung 4
H Mit Java ein JPG auf einem Server öffnen. Netzwerkprogrammierung 7
P Textdateien aus Oracle-DB mittels Java auslesen und öffnen Netzwerkprogrammierung 7
K öffnen des socket schlägt fehl -> ABER: keine exception . Netzwerkprogrammierung 2
G iexplorer öffnen Netzwerkprogrammierung 3
K Wenn socket geöffnet, warten dann öffnen ! Netzwerkprogrammierung 3
J Callto-Link mit Java öffnen ?? (unknown protocol) Netzwerkprogrammierung 2
J ServerSocket schließen / öffnen im Programmverlauf Netzwerkprogrammierung 4

Ähnliche Java Themen


Oben