restful example java jersey jersey-client

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(""));