Как обрабатывать ввод страниц html или jsp с помощью Apache HttpClient в приложении Java

#jsp #apache-httpclient-4.x #connectexception

Вопрос:

Я работаю над приложением, которое считывает ответ с определенных конечных точек, обрабатывает информацию и создает отчет в книге Excel. Таким образом, цель приложения-создать этот отчет .xlsx. Поскольку приложение просто считывает json с 2 конечных точек, я не использовал Spring или какую-либо другую веб-платформу, я просто создал метод, который использует Apache HttpClient для запроса ответов с конечных точек соответствующего веб-сайта, и создал отчет.

В начале приложение запрашивает необходимые входные данные (например, дату начала и окончания периода, за который должен быть создан отчет) у пользователя в консоли.

Однако теперь люди, которые дали мне задание, хотят, чтобы я создал страницу Всемирного банка, с которой должен быть сделан этот первоначальный ввод.

Мой вопрос в том, можно ли обрабатывать ввод этой страницы html или jsp без использования tomcat или рефакторинга приложения в приложение Spring Boot. Я уже использую Apache HttpClient, так как я могу обработать страницу с его помощью?

Это метод, в котором я пытаюсь использовать http-клиент:

 public InputBean getRequiredDetails() throws IOException {  String urlString = "http://localhost:8081/index.html";  HttpPost request = new HttpPost(urlString);  CloseableHttpResponse response = httpClient.execute(request);   return Utils.MAPPER.readValue(EntityUtils.toString(response.getEntity()), InputBean.class);  }  

Это страница jsp, которую я создал:

 lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%gt; lt;!DOCTYPE htmlgt; lt;htmlgt;  lt;headgt;  lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"gt;  lt;titlegt;Forecast Reportlt;/titlegt; lt;/headgt;  lt;bodygt;  lt;h1gt;Forecast Reportlt;/h1gt;  lt;form action="lt;%=request.getContextPath()%gt;/getInput" method="post"gt;  lt;table style="with: 50%"gt;  lt;trgt;  lt;tdgt;Usernamelt;/tdgt;  lt;tdgt;lt;input type="text" name="username" /gt;lt;/tdgt;  lt;/trgt;  lt;trgt;  lt;tdgt;Passwordlt;/tdgt;  lt;tdgt;lt;input type="text" name="password" /gt;lt;/tdgt;  lt;/trgt;  lt;trgt;  lt;tdgt;Start datelt;/tdgt;  lt;tdgt;lt;input type="text" name="start_date" /gt;lt;/tdgt;  lt;/trgt;  lt;trgt;  lt;tdgt;End datelt;/tdgt;  lt;tdgt;lt;input type="password" name="end_date" /gt;lt;/tdgt;  lt;/trgt;  lt;/tablegt;  lt;br/gt;  lt;input type="submit" value="Submit" /gt;  lt;/formgt; lt;/bodygt;  lt;/htmlgt;  

And this is the input bean I created:

 @Data @NoArgsConstructor @AllArgsConstructor public class InputBean {   private String username;   private String password;   private String startDate;   private String endDate;  }  

I read in internet about possible ways to make the request but I get ConnectException:

 Exception in thread "main" java.net.ConnectException: Connection refused: connect at java.base/java.net.PlainSocketImpl.connect0(Native Method) at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:101) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403) at java.base/java.net.Socket.connect(Socket.java:608) at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:326) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:605) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:440) at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) at com.dataart.forecasts.http.HttpConnector.getRequiredDetails(HttpConnector.java:74) at com.dataart.forecasts.ForecastReportApplication.main(ForecastReportApplication.java:56)  

Поэтому я предполагаю, что это результат того факта, что у меня есть клиент, но нет сервера. Я поместил tomcat в качестве зависимости в свой проект, но все еще не знаю, как это обработать. До сих пор я использовал Spring boot для веб-приложений, там встроен Tomcat, и у меня нет большого опыта работы с HttpClient. Пожалуйста, помогите!