2017-07-17 4 views
0

ich ein Webapp in Tomcat bereitgestellt habe 8. Dies ist das Servlet ich Probleme habe mit:OK von HTTP-Response-Header fehlen

@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); 
     } 
    } 
} 

Wenn ich eine Anfrage an dieses Servlet mache dann die Antwort enthält keinen OK-Status Nachricht, es ist nur:

HTTP/1.1 200 

Wie füge ich OK zur Antwort hinzu?

+5

Die 200 IS ist eine ok Antwort. Sie sollten den Rückgabecode beachten und keinen Text erwarten. Wenn dies jedoch erforderlich ist, müssen Sie es dem Antwortstream hinzufügen. – jr593

+0

Sie können die Standardantwortcodes nicht ändern – sForSujit

Antwort

1

Wenn Sie response.setStatus(HttpServletResponse.SC_OK); tun, ist es das gleiche wie response.setStatus(200); tun (wörtlich, wenn Sie es überprüfen, SC_OK mit Wert nur eine Konstante ist 200). 200 ist der Code für OK in http. Wenn Sie schreiben wollenOK manuell, müssen Sie hinzufügen:

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

aber das sollte nicht nützlich sein, da 200 bereits sagen: Die Anfrage wie beabsichtigt funktioniert.