Ответ 1
Apache HttpClient ничего не знает о JSON, поэтому вам нужно будет сконструировать JSON отдельно. Для этого я рекомендую проверить простую JSON-java библиотеку json.org. (Если "JSON-java" вам не подходит, у json.org есть большой список библиотек, доступных на разных языках.)
Как только вы создали свой JSON, вы можете использовать что-то вроде кода ниже для POST it
StringRequestEntity requestEntity = new StringRequestEntity(
JSON_STRING,
"application/json",
"UTF-8");
PostMethod postMethod = new PostMethod("http://example.com/action");
postMethod.setRequestEntity(requestEntity);
int statusCode = httpClient.executeMethod(postMethod);
Edit
Примечание. Вышеупомянутый ответ, заданный в вопросе, относится к Apache HttpClient 3.1. Однако, чтобы помочь любому, кто ищет реализацию против последнего клиента Apache:
StringEntity requestEntity = new StringEntity(
JSON_STRING,
ContentType.APPLICATION_JSON);
HttpPost postMethod = new HttpPost("http://example.com/action");
postMethod.setEntity(requestEntity);
HttpResponse rawResponse = httpclient.execute(postMethod);