如何用Java发出HTTP Json请求?有图书馆吗?在“ HTTP Json请求”下,我的意思是使用Json对象作为数据进行POST,并以Json接收结果。
除了本身进行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进行数据绑定的问题。