Я использую Apache HttpClient для вызова API внутри пакетной (STANDALONE) JAVA программы. Ниже приведен код
HttpClient httpClient = new HttpClient();
httpClient.getParams().setIntParameter("http.connection.timeout",5000);
PostMethod postMethod = new PostMethod("http://localhost:8080/endpoint");
for (String strRequest:listA) {
postMethod.setRequestEntity(new StringRequestEntity(strRequest,"application/json","UTF-8"));
postMethod.addRequestHeader("Content-Type","application/json");
postMethod.addRequestHeader("Accept","application/json");
int statusCode = httpClient.executeMethod(postMethod);
if (statusCode !=200) {
responseBodyStr = postMethod.getResponseBodyAsString();
} else {
responseBodyStr = postMethod.getResponseBodyAsString();
}
System.out.println(responseBodyStr);
}
На второй итерации я получаю ошибку 400 (время ожидания сокета). Есть ли способ сбросить httpClient
здесь, чтобы я мог повторно использовать тот же объект. Это также поможет с моим модульным тестированием. Это упрощенная версия кода. Фактический код имеет много обработки на основе ответа, полученного от API.