我需要通过序列化从客户端发送一个对象到服务器。
这是我的代码:StreamCorruptedException,当使用ObjectInputStream
HttpURLConnection con = null;
ObjectOutputStream out = null;
ObjectInputStream inputStream = null;
URL servlet = new URL("MY_URL");
con = (HttpURLConnection) servlet.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setDefaultUseCaches(false);
con.setRequestProperty("Content-type", "application/octet-stream");
con.setRequestMethod("POST");
out = new ObjectOutputStream(con.getOutputStream());
out.writeObject(myobject);
out.flush();
out.close();
inputStream = new ObjectInputStream(con.getInputStream());
inputStream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
// inputStream.close();
con.disconnect();
}
return true;
现在,我能够达到Servlet中,我可以通过那里检索对象。
唯一的问题是,一旦我达到这一行:
inputStream = new ObjectInputStream(con.getInputStream());
我得到一个异常StreamCorruptedException,在客户端。 (在服务器端一切工作太棒了!) 如果我走这条线断,该servlet未触发(我指的是doGet()
或doPost()
不会被调用在servlet)
我在做什么错?
这是确切的错误:
06-02 12:41:53.549: WARN/System.err(4260): java.io.StreamCorruptedException
06-02 12:41:53.549: WARN/System.err(4260): java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:2399)
06-02 12:41:53.549: WARN/System.err(4260): at java.io.ObjectInputStream.<init>(ObjectInputStream.java:447)
感谢,
雷
什么是确切的错误? – 2010-06-02 14:07:10
编辑问题 – rayman 2010-06-02 14:09:08