Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

HTTP响应头中缺少java OK

我在Tomcat 8中部署了一个webapp。这是我遇到问题的servlet:

@WebServlet(name = "Start", urlPatterns = {"/start"})
public class StartServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String requestBodyStr = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
        StartRequest startRequest = JsonUtil.parseStartRequest(requestBodyStr);

        if (startRequest == null) {
            response.sendError(HttpServletResponse.SC_BAD_REQUEST);
            return;
        }

        response.setStatus(HttpServletResponse.SC_OK);

        String responseBody = getResponseBody();

        try (PrintWriter out = response.getWriter()) {
            out.print(responseBody);
        }
    }
}

如果我向这个servlet发出请求,那么响应不包含OK状态消息,它只是:

HTTP/1.1 200

如何在回复中添加OK


共 (1) 个答案

  1. # 1 楼答案

    当你做response.setStatus(HttpServletResponse.SC_OK);的时候,它和做response.setStatus(200);是一样的(如果你检查它,字面意思是,SC_OK只是一个值为200的常数)。200是http中OK的代码。如果要手动写入OK,必须添加:

    responserBody += " OK";
    try (PrintWriter out = response.getWriter()) {
        out.print(responseBody);
    }
    

    但这不应该有用,因为200已经在说:请求按预期工作