如何使用Apache http客户端的URIBuilder在HTTP请求中发送正文?

gra*_*tii 2 apache curl http apache-httpcomponents apache-httpclient-4.x

我知道我可以使用setParameter方法添加http参数,但是如何使用URIBuilder该类将正文传递给http请求?

例如这个

URI uri = new URIBuilder().setScheme("http")
                .setHost("localhost:9091/test").setParameter("a", "1")
                .setParameter("b", "2").build();
Run Code Online (Sandbox Code Playgroud)

等效于以下curl请求:

curl -X POST http://localhost:9091/test\?a\=1\&b\=2

但是如何URIBuilder针对以下curl 使用(或任何其他类)构建URL :

curl -X POST http://localhost:9091/test -d '{"a":1,"b":2}'

ok2*_*k2c 5

HttpUriRequest request = RequestBuilder.create("POST")
    .setUri("http://localhost:9091/test")
    .setEntity(new StringEntity("{\"a\":1,\"b\":2}", ContentType.APPLICATION_JSON))
    .build();
Run Code Online (Sandbox Code Playgroud)