Я реализовал функцию PerformHttpPostRequest
, которая должна отправлять запрос на публикацию, содержит тело типа JSON и получать ответ JSON через Apache HttpClient.
public static String PerformHttpPostRequest(String url, String requestBody) throws IOException {
CloseableHttpClient client = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
StringEntity entity = new StringEntity(requestBody);
httpPost.setEntity(entity);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
CloseableHttpResponse response = client.execute(httpPost);
HttpEntity httpEntity = response.getEntity();
InputStream is = httpEntity.getContent();
return (new BufferedReader(new InputStreamReader(is, "UTF-8"))).readLine();
}
Проблема в том, что код отлично работает в среде разработки, но при запуске файла war с сервером tomcat, но запрос не выполняется.
Я попытался добавить несколько блоков перехвата, таких как IOException
, Exception
, и код не дошел.
Я добавил отладочные отпечатки, которые продемонстрировали, что код перестает отвечать на команду client.execute(...)
.
Функция вызывается внутри блока try
, и после выполнения команды .execute(...)
код попадает в блок finally
.
Я уже искал похожую проблему и не нашел ответа.
Это известная проблема? Кто-нибудь имеет представление о том, что может вызвать это? Или как я могу это исправить?