java - example - jersey-client maven
Publicar cuerpo vacĂo con cliente de Jersey 2 (5)
Encontré que esto funcionó para mí:
Response r = client
.target(url)
.path(path)
.queryParam(name, value)
.request()
.put(Entity.json(""));
Pase una cadena vacía, no un valor nulo.
¿Cómo presento una solicitud de publicación con un cuerpo vacío con un cliente de Jersey 2?
final MyClass result = ClientBuilder.newClient()
.target("http://localhost:8080")
.path("path")
.queryParam("key", "value")
.request(APPLICATION_JSON)
.post(What to fill in here if the body should be left empty??, MyClass.class);
Actualización: esto funciona:
final MyClass result = ClientBuilder
.newBuilder().register(JacksonFeature).build()
.target("http://localhost:8080")
.path("path")
.queryParam("key", "value")
.request(APPLICATION_JSON)
.post(null, MyClass.class);
No puedo encontrar esto en ningún lugar del documento, pero creo que puedes usar null
para obtener un cuerpo vacío:
final MyClass result = ClientBuilder.newClient()
.target("http://localhost:8080")
.path("path")
.queryParam("key", "value")
.request(APPLICATION_JSON)
.post(Entity.json(null), MyClass.class)
No sé si la versión lo cambia. Pero, lo siguiente no funciona:
builder.put( Entity.json( null ) );
Donde, lo siguiente funciona bien:
builder.put( Entity.json( "" ) );
Solo me funcionó con:
.post(Entity.json("{}")
Todas las otras soluciones, aún producen 400 malas solicitudes.
PS La solicitud se realiza mediante MediaType.APPLICATION_JSON
Solo publica un txt vacío.
.post(Entity.text(""));