diff --git a/src/main/java/org/redkale/net/http/HttpResponse.java b/src/main/java/org/redkale/net/http/HttpResponse.java index 0d41c356e..c63708b97 100644 --- a/src/main/java/org/redkale/net/http/HttpResponse.java +++ b/src/main/java/org/redkale/net/http/HttpResponse.java @@ -42,6 +42,8 @@ public class HttpResponse extends Response { protected static final byte[] bytes404 = "HTTP/1.1 404 Not Found\r\nContent-Length:0\r\n\r\n".getBytes(); + protected static final byte[] bytes405 = "HTTP/1.1 405 Method Not Allowed\r\nContent-Length:0\r\n\r\n".getBytes(); + protected static final byte[] bytes500 = "HTTP/1.1 500 Internal Server Error\r\nContent-Length:0\r\n\r\n".getBytes(); protected static final byte[] bytes504 = "HTTP/1.1 504 Gateway Timeout\r\nContent-Length:0\r\n\r\n".getBytes(); @@ -983,6 +985,14 @@ public class HttpResponse extends Response { super.finish(false, bytes404); } + /** + * 以405状态码输出 + */ + public void finish405() { + skipHeader(); + super.finish(false, bytes405); + } + /** * 以500状态码输出 */ diff --git a/src/main/java/org/redkale/net/http/HttpServlet.java b/src/main/java/org/redkale/net/http/HttpServlet.java index 6762d7bc5..31ffd0650 100644 --- a/src/main/java/org/redkale/net/http/HttpServlet.java +++ b/src/main/java/org/redkale/net/http/HttpServlet.java @@ -16,7 +16,6 @@ import static org.redkale.asm.ClassWriter.COMPUTE_FRAMES; import static org.redkale.asm.Opcodes.*; import org.redkale.boot.Application; import org.redkale.net.*; -import org.redkale.service.RetResult; import org.redkale.util.*; /** @@ -29,8 +28,10 @@ import org.redkale.util.*; */ public class HttpServlet extends Servlet { + @Deprecated //@since 2.8.0 public static final int RET_SERVER_ERROR = 1200_0001; + @Deprecated //@since 2.8.0 public static final int RET_METHOD_ERROR = 1200_0002; String _actionSimpleMappingUrl; //只给HttpActionServlet使用,_actionSimpleMappingUrl不能包含正则表达式,比如 /json /createRecord, 不能是 /user/** @@ -82,7 +83,8 @@ public class HttpServlet extends Servlet if (request.actionEntry != null) { ActionEntry entry = request.actionEntry; if (!entry.checkMethod(request.getMethod())) { - response.finishJson(new RetResult(RET_METHOD_ERROR, "Method(" + request.getMethod() + ") Error")); + //response.finishJson(new RetResult(RET_METHOD_ERROR, "Method(" + request.getMethod() + ") Error")); + response.finish405(); return; } request.moduleid = entry.moduleid; @@ -100,7 +102,8 @@ public class HttpServlet extends Servlet if (request.getRequestURI().startsWith(en.getKey())) { ActionEntry entry = en.getValue(); if (!entry.checkMethod(request.getMethod())) { - response.finishJson(new RetResult(RET_METHOD_ERROR, "Method(" + request.getMethod() + ") Error")); + //response.finishJson(new RetResult(RET_METHOD_ERROR, "Method(" + request.getMethod() + ") Error")); + response.finish405(); return; } request.actionEntry = entry; @@ -332,7 +335,7 @@ public class HttpServlet extends Servlet final String name; - final String[] methods; + final String[] methods; //不能为null,长度为0表示容许所有method final HttpServlet servlet;