Java HTTP响应头中缺少OK
我在Tomcat8中部署了一个webapp。这是我遇到问题的servlet:Java HTTP响应头中缺少OK,java,http,tomcat,servlets,Java,Http,Tomcat,Servlets,我在Tomcat8中部署了一个webapp。这是我遇到问题的servlet: @WebServlet(name = "Start", urlPatterns = {"/start"}) public class StartServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws Ser
@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添加到响应中?当您执行
response.setStatus(HttpServletResponse.SC\u OK)时代码>,与执行响应相同。设置状态(200)
(字面上,如果您检查它,SC_OK
只是一个值为200
的常量)。200是http中OK
的代码。如果要手动写入确定
,则必须添加:
responserBody += " OK";
try (PrintWriter out = response.getWriter()) {
out.print(responseBody);
}
但是这不应该有用,因为200
已经在说:请求按预期工作。200是一个ok响应。您应该注意返回的代码值,不要期望有文本。但是,如果需要,则需要将其添加到响应流中。您不能更改标准响应代码