如何使用Apache HTTP客户端的URIBuilder在HTTP请求中发送主体?
问题描述:
我知道我可以使用setParameter
方法添加http参数,但是如何使用URIBuilder
类将身体传递给http请求?如何使用Apache HTTP客户端的URIBuilder在HTTP请求中发送主体?
例如,这
URI uri = new URIBuilder().setScheme("http")
.setHost("localhost:9091/test").setParameter("a", "1")
.setParameter("b", "2").build();
是等效于以下卷曲请求:
curl -X POST http://localhost:9091/test\?a\=1\&b\=2
但如何构建使用URIBuilder
(或任何其它类),用于下面的一个URL卷曲:
curl -X POST http://localhost:9091/test -d '{"a":1,"b":2}'
答
HttpUriRequest request = RequestBuilder.create("POST")
.setUri("http://localhost:9091/test")
.setEntity(new StringEntity("{\"a\":1,\"b\":2}", ContentType.APPLICATION_JSON))
.build();