【发布时间】:2010-12-27 14:19:45
【问题描述】:
我们有下一个代码。
有时我们应该在最后一行等待 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") 是问题的根本原因。
【问题讨论】:
-
为什么openConnection被调用了两次?
-
只是印刷错误。已更正。
-
为什么是 Content-Length 问题呢?