web-dev-qa-db-ja.com

Jersey 2クライアントで空のボディを投稿する

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);
27
Stine

私はドキュメントのどこにもこれを見つけることができませんが、nullを使用して空のボディを取得できると信じています:

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

私はこれが私のために働いたことを見つけました:

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

Null値ではなく、空の文字列を渡します。

9
Gapmeister66

バージョンによって変更されるかどうかはわかりません。しかし、次は機能しません。

builder.put( Entity.json( null ) );

ここで、以下が正常に機能します。

builder.put( Entity.json( "" ) );

6
roanbaga

空のテキストを投稿するだけです。

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

それは私のためだけに働いた:

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

他のすべてのソリューションは、まだ400 Bad Requestを生成しました

追伸リクエストはMediaType.APPLICATION_JSONを使用して行われます

0
Michael