¿Cómo puedo ver la solicitud real que Jersey genera y envía al servidor? Estoy teniendo problemas con una solicitud en particular y el compañero que ejecuta el servidor web me pidió ver la solicitud completa (con encabezados y demás).Jersey: imprima la solicitud real
Respuesta
Si sólo está utilizando Jersey API de cliente, LoggingFilter (filtro de cliente) debe ayudarle a:
Client client = Client.create();
client.addFilter(new LoggingFilter(System.out));
WebResource webResource = client.resource("http://localhost:9998/");
ClientResponse response = webResource.accept(MediaType.APPLICATION_JSON)
.get(ClientResponse.class);
De lo contrario, puede volver a conectarse tanto de solicitud y respuesta en el servidor usando otra (filtro contenedor) LoggingFilter.
Este método 'addFilter' no existe en Jersey 2.x. ¿Cómo usas esto ahora? –
JAX-RS 2.x proporciona una funcionalidad que es equivalente a la API cliente de Jersey 1.x. Más detalles: https://jersey.java.net/documentation/latest/user-guide.html#mig-client-api –
Para las personas interesadas en personalizar el resultado del registro, pueden crear su propio LoggingFilter http: // stackoverflow. com/questions/30187514/how-to-log-request-body-in-jax-rs-client – nacho4d
@ La respuesta de ivan.cikic es para Jersey 1.x. Así es como lo haces en Jersey 2.x:
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.filter.LoggingFilter;
import org.json.JSONException;
import org.json.JSONObject;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.MediaType;
...
ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newClient(config);
client.register(new LoggingFilter());
esto es irrelevante pero acabo de tener a quejarse: El nuevo LoggingFilter
es realmente molesto porque te obliga a utilizar Java Util registro. Sería mejor si me daba el control sobre el registrador. Parece un paso atrás en el diseño.
Sé que esta es una respuesta antigua, pero tengo una pregunta: ¿sabe cómo hacer que el registrador imprima TODO la información contenida en una solicitud? En particular, las cookies. He usado el constructor 'LoggingFilter (Logger logger, booleano PrintEntity)', pero incluso eso no imprime cookies. – bkaiser
LoggingFilter ahora está en desuso. Debe usar la respuesta de Martin de LoggingFeature. Esto también es compatible con Verosity enum para imprimir una cantidad variable de detalles. Debería imprimir encabezados, que deberían incluir cookies. –
Desde Jersey 2.23, hay un LoggingFeature
que puede usar. El siguiente es un ejemplo un poco simplificado, tenga en cuenta que también puede registrar la función en WebTarget
.
Logger logger = Logger.getLogger(getClass().getName());
Feature feature = new LoggingFeature(logger, Level.INFO, null, null);
Client client = ClientBuilder.newBuilder()
.register(feature)
.build();
Response response = client.target("https://www.google.com")
.queryParam("q", "Hello, World!")
.request().get();
JavaDoc de LoggingFeature
dice que la demanda "y/o" la respuesta se registra lol. En mi máquina, ambos están registrados.
- 1. Jersey Client: Agregar cookies a la solicitud
- 2. Cómo solucionar los parámetros de solicitud de Jersey POST ¿advertencia?
- 3. ¿Puede una solicitud GET de Jersey devolver una entidad polimórfica?
- 4. ¿Hay alguna manera de que PHP imprima los datos en un navegador web en tiempo real?
- 5. Dependencias del cliente Jersey
- 6. Grizzly y jersey independiente de Jersey
- 7. Obtener la configuración regional del cliente en una solicitud de jersey
- 8. Content-Length-cabecera no fijadas en la solicitud del cliente Jersey
- 9. Jersey ExceptionMapper y la herencia
- 10. Extensión de Google Chrome: Imprima la página en silencio
- 11. ¿Cómo emular una solicitud http real a través de cfhttp?
- 12. Usando el cliente jersey para hacer una operación POST con params de solicitud y un cuerpo de solicitud
- 13. Servicio web Java ASYnc REST con Jersey?
- 14. EntityTag - Value, Caching, Comparison - cómo en Jersey
- 15. ¿Cómo se intercepta una solicitud durante el ciclo de vida de Jersey?
- 16. JAX-RS (Jersey) a Consume Matriz de objeto JSON en solicitud POST
- 17. ¿Cómo accedo a la solicitud HTTP?
- 18. Jersey consume XML post
- 19. HTTPS utilizando Jersey Client
- 20. Jersey multiparte cliente Subir
- 21. Perl: imprima de nuevo al comienzo de la línea
- 22. Cargue la imagen del archivo e imprima usando WPF ... ¿cómo?
- 23. ¿Cómo lograr que QUnit imprima rastreos en la excepción?
- 24. Imprima el nombre de la variable objetivo-C
- 25. Obtener el estado de una solicitud PUT en el cliente Jersey
- 26. Jersey Client + set proxy
- 27. RESTE ¿o Jersey?
- 28. Escanee e imprima usando el dispositivo Android
- 29. Jersey & Jackson - Recurso modificando la salida de Jackson
- 30. Jersey Ningún proveedor de aplicaciones web está presente cuando se agregó la dependencia jersey- *
para iniciar la sesión en el lado del servidor vea el siguiente mensaje: [¿Cómo obtener los registros de jersey en el servidor?] [1] [1]: https://stackoverflow.com/questions/2332515/how-to-get-jersey-logs-at-server – eeezyy