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);
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)
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.
Il suffit de poster un txt vide.
.post(Entity.text(""));
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