将byte []从独立main发送到servlet

时间:2014-02-04 16:22:26

标签: java servlets stream

如何从测试客户端(独立)向Servlet发送byte[]

这是我的代码:

public class Sent
{
    public static void main(String[] args) throws Exception
    {
        URL url = new URL("http://mydomain.com:8080/demo/myServlet");
        HttpURLConnection oc = (HttpURLConnection)url.openConnection(); 

        oc.setDoOutput(true);
        oc.setUseCaches(false);

        OutputStream os = oc.getOutputStream();     
        os.write("Hello world".getBytes());
        os.flush();     
        os.close();
    }
}

这是我的servlet:

@WebServlet("/myServlet")
public class MyServlet extends HttpServlet
{
    private static final long serialVersionUID=1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException
    {
        ServletInputStream sis = request.getInputStream();
        int c;
        while( (c=sis.read())>=0 )
        {
            System.out.println((char)c);
        }

        sis.close();
    }
}

使用此代码,servlet什么都不做;我没有意思,它没有在控制台上写任何东西......帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

致电时

oc.setDoOutput(true);

HttpURLConnection假设您正在尝试发送POST请求。你没有POST请求处理程序,即。没有doPost(),因此您继承了HttpServlet的实现,该实现返回405 Method Not Allowed响应。你会看到,如果你做了

System.out.println(oc.getResponseCode());

而是将doGet更改为doPost。或者两者兼而有之。