我们有下一个代码。 有时我们应该在最后一行等待10-20-40秒。 可能是什么问题?
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();
更新: 下一个代码解决了ECLIPSE中的问题。 但是它仍然不能通过Java WebStart起作用:
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoInput(true); conn.setDoOutput(true); conn.setUseCaches(false); System.setProperty("http.keepAlive", "false"); //<--------------- conn.connect();
但为什么?
更新了一次! 错误已修复!:) 我们使用的连接不是一类而是两类。 第二类中有以下一行:
URL url = ... HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestProperty("Content-Length", "1000"); //<------------ conn.connect();
注意: setRequestProperty("Content-Length", "1000")是问题的根本原因。
setRequestProperty("Content-Length", "1000")
``我们有一个类似的问题,这是由旧Java的越野车保持活动引起的。在连接之前添加它以查看是否有帮助,
conn.setRequestProperty("Connection", "close");
要么
System.setProperty("http.keepAlive", "false");