如何使用带有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);
答案 0 :(得分:22)
我无法在任何地方的文档中找到这个,但我相信你可以使用null
来获得一个空洞的身体:
final MyClass result = ClientBuilder.newClient()
.target("http://localhost:8080")
.path("path")
.queryParam("key", "value")
.request(APPLICATION_JSON)
.post(Entity.json(null), MyClass.class)
答案 1 :(得分:7)
我发现这对我有用:
Response r = client
.target(url)
.path(path)
.queryParam(name, value)
.request()
.put(Entity.json(""));
传递空字符串,而不是空值。
答案 2 :(得分:5)
我不知道版本是否会改变它。但是,以下不起作用:
builder.put( Entity.json( null ) );
其中,以下工作正常:
builder.put( Entity.json( "" ) );
答案 3 :(得分:3)
只需发布一个空的txt。
.post(Entity.text(""));
答案 4 :(得分:0)
它只对我有用:
.post(Entity.json("{}")
所有其他解决方案,仍然产生400 Bad Request
P.S。请求使用MediaType.APPLICATION_JSON
完成