使用Tomcat。我想将一个String发送到服务器,让服务器操纵String然后再发回。在我写完输出流后尝试在客户端上打开InputStream时,应用程序崩溃。
服务器:
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException{
try{
ServletInputStream is = request.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
String s = (String)ois.readObject();
is.close();
ois.close();
ServletOutputStream os = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject("return: "+s);
oos.flush();
os.close();
oos.close();
}
catch(Exception e){
}
}
客户端:
URLConnection c = new URL("*****************").openConnection();
c.setDoInput(true);
c.setDoOutput(true);
c.connect();
OutputStream os = c.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject("This is the send");
oos.flush();
oos.close();
InputStream is = c.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
System.out.println("ret: "+ois.readObject());
ois.close();
is.close();
os.close();
它返回此错误:
java.io.IOException: Server returned HTTP response code: 405 for URL:
http://mywebpage.com
导致此错误的是什么,我做错了什么?
答案 0 :(得分:0)
您正在使用HTTP servlet; Tomcat作为Web服务器运行。您必须从客户端说HTTP,而不是序列化的Java对象。如果您想使用Java序列化,则需要使用套接字。如果要使用servlet,则需要使用某种形式将信息放入HTTP中; JSON(与杰克逊)是一个不错的选择。