客户端如下:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
public class SentUpdate {
static public void main(String args[]){
try{
URL newURL = new URL("http://192.168.1.102:8080/hessianTest/AcceptUpdate");
HttpURLConnection conn = (HttpURLConnection) newURL.openConnection();
conn.setUseCaches(false);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type","application/x-java-serialized-object");
OutputStream outStrm = conn.getOutputStream();
ObjectOutputStream objOutputStrm = new ObjectOutputStream(outStrm);
objOutputStrm.writeObject(new String("abc"));
objOutputStrm.flush();
objOutputStrm.close();
InputStream inStrm = conn.getInputStream();
inStrm.close();
}catch(MalformedURLException e){
System.err.print("malformedURLexception"+e);
}catch(IOException e){
System.err.print("IOException"+e);
}
}
}
服务器端如下
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
/* (non-Java-doc)
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
但是为什么无法得到输出流呢,就是服务器端无法读到ss
你将objInStream读了两遍,第一次已经把流完了,第二次就读不出来了,会抛一个EOFException:
Object obj = objInStream.readObject();
String ss=(String) objInStream.readObject();
改成:
//Object obj = objInStream.readObject();//去掉这句
String ss=(String) objInStream.readObject();
System.out.println(ss);