ArrayList vData;
UrlConnection vUc;
...网络连接代码得到 vUc实例....
...设置vUc属性。。。
vUc.setRequestProperty("Content-Type","application/x-www-form-urlencoded");//设置server处理流方式
ObjectOutputStream vObjOut=new ObjectOutputStream(vUc.getOutputStream());
vObjOut.writeObject(vData); //传送ArrayList对象到服务器
......
vObjOut.flush();
vObjeOut.close();
修改:
在设置server处理流方式中,应该这么写:vUc.setRequestProperty("Content-Type","application/octet-stream").
这在本质上是一个与对象的序列化相分离的发送、接收附加信息的非正式途径。将“Content-Type”类型设置为“application”可通知系统,流有意让传输的数据由安装在本地的程序来解释.
server代码:
ObjectInputStream vObject=new ObjectInputStream(request.getInputStream()); //出先前面我说到的错误。
ArrayList vData=(ArrayList)vObject.readObject();
顺利通过。
如果你的client是jsp,就没必要这么处理了,直接用session或rquest.setAttribute("")来处理了。
项目移植中几个问题都基本解决了,最后还有一个session在application传递问题,下周没解决再来问。
文章来源于领测软件测试网 https://www.ltesting.net/