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);
更新:これは動作します:
final MyClass result = ClientBuilder
.newBuilder().register(JacksonFeature).build()
.target("http://localhost:8080")
.path("path")
.queryParam("key", "value")
.request(APPLICATION_JSON)
.post(null, MyClass.class);
私はドキュメントのどこにもこれを見つけることができませんが、null
を使用して空のボディを取得できると信じています:
final MyClass result = ClientBuilder.newClient()
.target("http://localhost:8080")
.path("path")
.queryParam("key", "value")
.request(APPLICATION_JSON)
.post(Entity.json(null), MyClass.class)
私はこれが私のために働いたことを見つけました:
Response r = client
.target(url)
.path(path)
.queryParam(name, value)
.request()
.put(Entity.json(""));
Null値ではなく、空の文字列を渡します。
バージョンによって変更されるかどうかはわかりません。しかし、次は機能しません。
builder.put( Entity.json( null ) );
ここで、以下が正常に機能します。
builder.put( Entity.json( "" ) );
空のテキストを投稿するだけです。
.post(Entity.text(""));
それは私のためだけに働いた:
.post(Entity.json("{}")
他のすべてのソリューションは、まだ400 Bad Requestを生成しました
追伸リクエストはMediaType.APPLICATION_JSONを使用して行われます