Manchmal HttpURLConnection.getInputStream führt zu langsam

Wir haben nächsten code.

Manchmal sollten wir warten, 10-20-40 Sekunden auf der letzten Zeile.

Was kann das problem sein?

Java 1.4

URL url = ...;
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.connect();
OutputStream out = conn.getOutputStream();
ObjectOutputStream outStream = new ObjectOutputStream(out);
try
{
   outStream.writeObject(objArray);
}
finally
{
   outStream.close();
}

InputStream input = conn.getInputStream();

AKTUALISIERT:

Folgender code behebt das problem IN ECLIPSE.

Aber es FUNKTIONIERT immer noch NICHT via Java WebStart:(

HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
conn.setDoInput(true);  
conn.setDoOutput(true);  
conn.setUseCaches(false);  
System.setProperty("http.keepAlive", "false");  //<---------------
conn.connect();  

Aber warum?

AKTUALISIERT noch eine Zeit!

Bug behoben wurde! 🙂


Wir arbeiteten mit verbindungen, die nicht in einer Klasse, aber in zwei.

Und dort ist folgende Zeile in der zweiten Klasse:

URL url = ...  
HttpURLConnection conn = (HttpURLConnection) url.openConnection();  
conn.setRequestProperty("Content-Length", "1000");  //<------------
conn.connect();  

Hinweis:
setRequestProperty("Content-Length", "1000") ist Ursache des Problems.

  • Warum ist openConnection zweimal aufgerufen?
  • Es ist nur Druckfehler. Korrigiert.
  • Warum ist Content-Length das Problem, eh?
Schreibe einen Kommentar