Quellcode durchsuchen

play with trying to get a response back to client

Grega Bremec vor 7 Monaten
Ursprung
Commit
d80cd323e9
1 geänderte Dateien mit 14 neuen und 6 gelöschten Zeilen
  1. 14 6
      src/main/java/net/p0f/k8s/demo/apiclient/ResponseFilter.java

+ 14 - 6
src/main/java/net/p0f/k8s/demo/apiclient/ResponseFilter.java

@@ -9,12 +9,20 @@ import org.jboss.logging.Logger;
 import jakarta.ws.rs.client.ClientRequestContext;
 import jakarta.ws.rs.client.ClientResponseContext;
 import jakarta.ws.rs.client.ClientResponseFilter;
+import jakarta.ws.rs.core.MultivaluedMap;
 
 public class ResponseFilter implements ClientResponseFilter {
     final Logger LOG = Logger.getLogger(ResponseFilter.class.getName());
 
     @Override
     public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
+        int status = responseContext.getStatus();
+        MultivaluedMap<String, String> headers = responseContext.getHeaders();
+        StringBuffer body = new StringBuffer();
+        BufferedReader br = new BufferedReader(new InputStreamReader(responseContext.getEntityStream()));
+        br.lines().forEach((l) -> { body.append(l); });
+
+        // Log request info first.
         LOG.info("Original request: " + requestContext.getMethod() + " " + requestContext.getUri());
         LOG.info("Request Headers:");
         requestContext.getHeaders().forEach((k, v) -> {
@@ -26,15 +34,15 @@ public class ResponseFilter implements ClientResponseFilter {
         } else {
             LOG.info("Request payload empty.");
         }
-        LOG.info("Got response: HTTP/" + responseContext.getStatus());
+
+        // Log response next.
+        LOG.info("Got response: HTTP/" + status);
         LOG.info("Response Headers:");
-        responseContext.getHeaders().forEach((k, v) -> {
+        headers.forEach((k, v) -> {
             LOG.info(k + ": " + v);
         });
         LOG.info("Response Body:");
-        BufferedReader br = new BufferedReader(new InputStreamReader(responseContext.getEntityStream()));
-        br.lines().forEach((l) -> {
-            LOG.info(l);
-        });
+        LOG.info(body);
+        responseContext.setStatus(200);
     }
 }