Помимо выполнения самого 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.