如何从测试客户端(独立)向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什么都不做;我没有意思,它没有在控制台上写任何东西......帮助。
感谢。
答案 0 :(得分:1)
致电时
oc.setDoOutput(true);
HttpURLConnection
假设您正在尝试发送POST请求。你没有POST请求处理程序,即。没有doPost()
,因此您继承了HttpServlet
的实现,该实现返回405 Method Not Allowed
响应。你会看到,如果你做了
System.out.println(oc.getResponseCode());
而是将doGet
更改为doPost
。或者两者兼而有之。