Tenemos el siguiente código.
A veces debemos esperar 10-20-40 segundos en la última línea.
¿Cuál puede ser el problema?A veces HttpURLConnection.getInputStream se ejecuta demasiado lentamente
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();
Actualizado:
código siguiente corrige el problema en Eclipse.
Pero aún así no funciona a través de Java Web Start :(
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
System.setProperty("http.keepAlive", "false"); //<---------------
conn.connect();
pero ¿por qué?
ACTUALIZADA una vez más!
error se corrigió! :)
trabajamos con conexiones no en una clase pero en dos.
Y hay línea siguiente en la segunda clase:
URL url = ...
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Content-Length", "1000"); //<------------
conn.connect();
Nota: setRequestProperty("Content-Length", "1000")
es la causa raíz del problema.
¿Por qué se llama openConnection dos veces? –
Es simplemente un error de impresión. Corregido. –