一尘不染

Java中的HTTP Json请求?

json

如何用Java发出HTTP Json请求?有图书馆吗?在“ HTTP
Json请求”下,我的意思是使用Json对象作为数据进行POST,并以Json接收结果。


阅读 271

收藏
2020-07-27

共1个答案

一尘不染

除了本身进行HTTP请求(甚至可以仅使用 **java.net.URL.openConnection**
即可完成)之外,您还需要一个JSON库。为了方便地与POJO绑定,我建议使用Jackson

因此,类似:

// First open URL connection (using JDK; similar with other libs)
URL url = new URL("http://somesite.com/requestEndPoint");
URLConnection connection = url.openConnection();
connection.setDoInput(true);  
connection.setDoOutput(true);  
// and other configuration if you want, timeouts etc
// then send JSON request
RequestObject request = ...; // POJO with getters or public fields
ObjectMapper mapper = new ObjectMapper(); // from org.codeahaus.jackson.map
mapper.writeValue(connection.getOutputStream(), request);
// and read response
ResponseObject response = mapper.readValue(connection.getInputStream(), ResponseObject.class);

(显然具有更好的错误检查等)。

有更好的方法可以使用现有的rest-client库;但从低层次看,这仅是HTTP连接处理以及与JSON进行数据绑定/从JSON进行数据绑定的问题。

2020-07-27