web-dev-qa-db-fra.com

Poster un corps vide avec le client Jersey 2

Comment envoyer une demande de publication avec un corps vide avec un client 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);

Mise à jour: cela fonctionne:

final MyClass result = ClientBuilder
    .newBuilder().register(JacksonFeature).build()
    .target("http://localhost:8080")
    .path("path")
    .queryParam("key", "value")
    .request(APPLICATION_JSON)
    .post(null, MyClass.class);
25
Stine

Je ne trouve pas cela dans la documentation, mais je pense que vous pouvez utiliser null pour obtenir un corps vide:

final MyClass result = ClientBuilder.newClient()
    .target("http://localhost:8080")
    .path("path")
    .queryParam("key", "value")
    .request(APPLICATION_JSON)
    .post(Entity.json(null), MyClass.class)
21
Alden

J'ai trouvé que cela fonctionnait pour moi:

Response r = client
    .target(url)
    .path(path)
    .queryParam(name, value)
    .request()
    .put(Entity.json(""));

Passer une chaîne vide, pas une valeur nulle.

7
Gapmeister66

Il suffit de poster un txt vide.

   .post(Entity.text(""));
3
eosimosu

Cela a fonctionné pour moi seulement avec:

.post(Entity.json("{}")

Toutes les autres solutions, toujours produites 400 Bad Request

P.S. La demande est faite en utilisant MediaType.APPLICATION_JSON

0
Michael