我正在处理以下问题。
我有一个servelt(覆盖了doPost和doGet)和一个带有以下代码的小程序:
String urlStr="blabla";
URLConnection conn = StartConnection("http","localhost",8084,urlStr);
InputObject obj = GetInputObject();
ObjectOutputStream oos = new ObjectOutputStream(conn.getOutputStream());
oos.writeObject(obj);
oos.flush();
使用这段代码,servlet 不执行任何操作(doPost 或 doGet)。但是如果我添加
BufferedReader in=new BufferedReader(new InputStreamReader(conn.getInputStream()));
String result = in.readLine();
log(result);
我进入 doPost 正文。谷歌搜索什么都没有。为什么我必须回读回复,即使我不需要它?
添加:
private URLConnection StartConnection(String protocol,String host,int port, String urlStr){
URLConnection conn = null;
try
{
URL currentPage=getCodeBase();
URL dataURL=new URL(protocol,host,port,urlStr);
conn = dataURL.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
}
catch(Exception ee){
log(ee.getMessage().toString());
}
return conn;
}