HTTP method POST is not supported by this URL解决
Posted 幽人月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP method POST is not supported by this URL解决相关的知识,希望对你有一定的参考价值。
今天写了个非常简单的setvlet想测试些东西,写好了后用postman请求报错,报错内容如下
{ "timestamp": 1504170113588, "status": 405, "error": "Method Not Allowed", "message": "HTTP method POST is not supported by this URL", "path": "/vincent/aaa" }
但是我的控制台还是答应了我的请求内容,百思不得其解,最后发现是因为没有把调用父类的post方法删掉
我的代码如下
@WebServlet(urlPatterns = "/aaa") public class MyServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException { super.doGet(request, resp); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException { InputStream inputStream = request.getInputStream(); BufferedReader in=new BufferedReader(new InputStreamReader(request.getInputStream())); StringBuilder sb = new StringBuilder(); String xmlHead = ""; String xmlContent=""; String line = null; while ((line = in.readLine()) != null) { sb.append(line); } System.out.println(sb); super.doPost(request, resp); } }
super.doPost(request, resp);的源码如下
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String protocol = req.getProtocol(); String msg = lStrings.getString("http.method_post_not_supported"); if (protocol.endsWith("1.1")) { resp.sendError(405, msg); } else { resp.sendError(400, msg); } }
有没有发现,无论你的请求怎样,他都报错的。
以上是关于HTTP method POST is not supported by this URL解决的主要内容,如果未能解决你的问题,请参考以下文章
HTTP Status 405 - HTTP method POST is not supported by this URL另外一种原因
JSP登录系统点提交出错HTTP Status 405 - HTTP method POST is not supported by this URL
HTTP Status 400 - Required String parameter 'exportdata' is not present
Bower : ENOGIT git is not installed or not in the PATH
axios异步访问后台 @RequestParam 获取参数 HTTP Status 400 - Required String parameter 'xx' is not prese
axios异步访问后台 @RequestParam 获取参数 HTTP Status 400 - Required String parameter 'xx' is not prese