Заставить java web начать использовать прокси как Fiddler, не трогая код
Для проекта автоматического программного обеспечения мне нужны некоторые запросы и ответы от приложения Java Web Start.
Поэтому я установил Fiddler Web Debugger, а затем попытался использовать этот прокси-сервер Fiddler для отслеживания всех запросов.
Проблема заключается в приложении Java Web Start.
Я добавил это в файл.jnlp и надеялся, что это работает... Это не так!:(
<property name="http.proxyHost" value="127.0.0.1"/>
<property name="http.proxyPort" value="8888"/>
Приложение будет игнорировать это.
Затем я попытался настроить параметры Java.
Тоже не работает; (
Wireshark не может расшифровать запросы https/ssl...
Что я мог сделать, чтобы расшифровать запросы или прочитать запросы ИЛИ разрешить использовать веб-приложение java для запуска прокси-сервера Fiddler.
Почему Java не может использовать системный прокси? >.>
1 ответ
Есть разные способы, как это сделать:
1.) Вы можете установить прокси в настройках системы Java. Откройте Системные настройки \ Java \ Панель управления Java \ Сетевые настройки. Там вы можете настроить прокси...
2.) Еще одна возможность проверить, правильно ли настроен ваш прокси, - это проверить в вашей Java-программе:
private Proxy findProxy(URI uri)
{
try
{
ProxySelector selector = ProxySelector.getDefault();
List<Proxy> proxyList = selector.select(uri);
if (proxyList.size() > 1)
return proxyList.get(0);
}
catch (IllegalArgumentException e)
{
}
return Proxy.NO_PROXY;
}
3.) Установите системные настройки в вашей программе:
System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "myProxyMachineName" );
System.getProperties().put( "proxyPort", "85" );
Если вам также нужна аутентификация, используйте (подробнее здесь)
URLConnection connection = url.openConnection();
String password = "username:password";
String encodedPassword = base64Encode( password );
connection.setRequestProperty( "Proxy-Authorization", encodedPassword );