Я пытаюсь установить FTP-соединение через HTTP с использованием прокси. Я установил хост и порт прокси-сервера HTTP и HTTPS со следующим кодом:
system.setProperty("java.net.useSystemProxies","true");
List<Proxy> l = null;
try {
l = ProxySelector.getDefault().select(new URI("http://foo/bar"));
} catch (URISyntaxException e) {
e.printStackTrace();
}
if (l != null) {
for (Iterator iter = l.iterator(); iter.hasNext();) {
java.net.Proxy proxy = (java.net.Proxy) iter.next()
InetSocketAddress addr = (InetSocketAddress) proxy.address();
if (addr != null) {
System.setProperty("http.proxyHost", addr.getHostName());
System.setProperty("http.proxyPort", Integer.toString(addr.getPort()));
System.setProperty("https.proxyHost", addr.getHostName());
System.setProperty("https.proxyPort", Integer.toString(addr.getPort()));
System.setProperty("socksProxyHost",addr.getHostName());
System.setProperty("socksProxyPort","xxxx" );
я хотел бы знать, есть ли способ узнать, какой из них является настроенным интернет-портом (в панели управления интернет-прокси Windows) о прокси-сервере, чтобы установить его во время выполнения с помощью кода:
System.setProperty("socksProxyPort")
мне нужно сделать это без того, чтобы пользователь знал порт и выбирал его в программном обеспечении перед подключением, потому что я хотел бы сделать это «автоматически», поскольку я могу установить прокси-сервер HTTP, получая параметры из системы.
Мне это нужно, потому что у меня странная проблема: если я не устанавливаю номер порта во время выполнения прокси-сервера socks, мой клиент не может правильно выполнить запрос PUT или GET, используя библиотеки AXIS2 и сервер веб-сервиса, ЕСЛИ в панели параметров Интернета Windows прокси-сервер настроен с опцией: "использовать один и тот же прокси-сервер для всех протоколов"
если я отключу эту опцию и установлю вручную адреса socks (192.168.xy, порт 1080), как ни странно, соединение будет продолжаться без необходимости устанавливать кодом порт с использованием одного и того же прокси-сервера для всех протоколов.
Я также могу попытаться изменить порт socks, используя другой, es 808. Я могу подключиться к серверу, если в своем коде я установил тот же порт с System.setProperty("socksProxyPort","808")