-1

使用 Tomcat。我想向服务器发送一个字符串,让服务器操作该字符串,然后将其发回。每当我在写入输出流后尝试在客户端上打开 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

是什么导致了这个错误,我做错了什么?

4

1 回答 1

0

您正在使用 HTTP servlet;Tomcat 作为 Web 服务器运行。您必须从客户端说 HTTP,而不是序列化的 Java 对象。如果要使用 Java 序列化,则需要使用套接字。如果您想使用 servlet,您需要使用某种形式将您的信息放入 HTTP;JSON(与杰克逊)是一个不错的选择。

于 2013-08-10T14:16:01.687 回答