У меня толстое клиентское приложение, которое подключается к серверу в Интернете для передачи и загрузки файлов.
Однако доступ к Интернету осуществляется через прокси.Я использую HttpClient на толстом клиенте и загрузку файлов Apache Commons на стороне сервера.
Я устанавливаю прокси на HttpClient, как показано ниже:
HttpClient client = new HttpClient();
HostConfiguration config = client.getHostConfiguration();
config.setProxy(PROXY_HOST, PROXY_PORT);
PostMethod filePost = new PostMethod(servletPath);
int status = client.executeMethod(config , filePost);
Однако вместо значений жесткого кодирования для PROXY_HOST, PROXY_PORT выше, я использую HttpUrlConnection, чтобы получить информацию прокси и установить вэти значения.Это отлично работает.
Если я не установил настройки прокси-сервера, как это, HttpClient игнорирует мои настройки прокси-сервера и не определяет их автоматически, и в результате мое приложение не может подключиться к серверу в Интернете.
Теперь, когда я подключаюсь к серверу с помощью HttpClient, запрос проходит через прокси, но не выполняется, так как он ожидает учетные данные аутентификации пользователя для предоставленной информации прокси.Я не могу найти способ, как заставить это работать, поскольку я ожидал всплывающее окно для ввода пользователем идентификатора пользователя и пароля, после подключения к прокси-серверу вместо полного сбоя запроса.
Может кто-нибудь подсказать, как заставить HttpClient работать с прокси без жесткого кодирования значений PROXY_HOST, PROXY_PORT.
Также это приложение будет запущено из толстого клиента для разных пользователей.Таким образом, информация о прокси должна автоматически обнаруживаться в настройках браузера (что делает для меня HttpUrlConnection).
Может кто-нибудь предложить решение для этого сценария?