Я пытаюсь выполнить Http POST для API с машины linux. Но мой вызов URL-адреса завершается с ошибкой тайм-аута. Для этого я использую библиотеку httpclient-4.5.8. Предыстория: Изначально мой клиентский сервер не был включен в белый список, поэтому я получал "403-Forbidden" из URL. Но после внесения в белый список возникает ошибка тайм-аута.
public void PostMessage() {
try {
final RequestConfig params = RequestConfig.custom().setConnectTimeout(3000).setSocketTimeout(3000).build();
httpPost = new HttpPost(getUri());
log4.debug("URL set up done for "+ httpPost.getURI());
final StringEntity entity = new StringEntity(getMessage());
httpPost.setConfig(params);
httpPost.setEntity(entity);
httpPost.setHeader("Content-type", "application/json");
CloseableHttpResponse response = (CloseableHttpResponse) client.execute(httpPost);
log4.info("Response Code:" + response.getStatusLine().getStatusCode());
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
log4.info("Response Content:" + line);
}
} catch (IOException i) {
log4.info("Error at PostClient.IOException. " + i.getMessage());
} catch(Exception e) {
log4.info("Error at PostClient.Exception. " + e.getMessage());
}
}
Трассировка журнала: (Простите за маскировку)
"message": "URL-адрес настроен для https://ABCD.com/ "," logger ":" com.tesco.ReceiptClient.PublishClient.ReceiptPostClient: PostMessage "
" message ":" CookieSpe c selected: default "," logger ":" org. apache .http.client.protocol.RequestAddCookies: process "
" message ":" Кэш аутентификации не установлен в контексте "," logger ":" org. apache .http.client.protocol.RequestAuthCache: process "
" message ":" Запрос на соединение: [route: {s} -> https://ABCD.com: 443] [всего поддерживается: 0; маршрут выделен: 0 из 2; всего выделено: 0 из 20] »,« logger »:« org. apache .http.impl.conn.PoolingHttpClientConnectionManager: requestConnection »
« message »:« Соединение арендовано: [id: 1] [ маршрут: {s} -> https://ABCD.com: 443] [всего поддерживается: 0; маршрут выделен: 1 из 2; всего выделено: 1 из 20] "," logger ":" org. apache .http.impl.conn.PoolingHttpClientConnectionManager: leaseConnection "
" message ":" Открытие соединения {s} -> https://ABCD.com: 443"," logger ":" org. apache .http.impl.execchain.MainClientExe c: выполнить "
"message": "Подключение к ABCD.com/xxx.xx.xx.x:443","logger":"org.apache.http.impl.conn.DefaultHttpClientConnectionOperator:connect"
"message": "Подключение сокета к ABCD.com/xxx.xx.xx.x:443 с таймаутом 3000", "logger": "org. apache .http.conn.ssl.SSLConnectionSocketFactory: connectSocket"
"message": "http-outgoing-1: Shutdown connection", "logger": "org. apache .http.impl.conn.LoggingManagedHttpClientConnection: shutdown"
"сообщение ":" Соединение прервано "," регистратор ":" org. apache .http.impl.execchain.ConnectionHolder: abortConnection "
" message ":" Соединение освобождено: [id: 2] [route: {s} -> https://ABCD.com: 443] [всего осталось в живых: 0; выделено маршрутов: 0 из 2; всего выделено: 0 из 20] »,« logger »:« org. apache .http.impl.conn.PoolingHttpClientConnectionManager: releaseConnection »
« message »:« Ошибка в PostClient.IOException. Подключиться к ABCD.com:443 [ABCD.com/xxx.xx.xx.x] не удалось: время ожидания подключения истекло »,« logger »:« com.tesco.ReceiptClient.PublishClient.ReceiptPostClient: PostMessage »