В настоящее время я пишу Java-приложение, которое использует HTTP POST для загрузки CSV файла и нескольких других параметров на сервер. Сервер возвращает 500 ошибок в мое приложение, и я хотел бы просмотреть HTTP-запрос в Fiddler, чтобы я мог видеть запрос POST.
Когда я запускаю Fiddler, он не будет захватывать HTTP-трафик из приложения Java. Я написал запрос GET, который работает, поэтому я знаю, что могу общаться с сервером, однако никакой трафик не отображается через Fiddler.
Fiddler не захватывает HTTP-запросы от Java-приложения
Ответ 1
Вы можете просто установить Fiddler как HTTP-прокси для своего приложения, установив свойства
http.proxyHost
на localhost и http.proxyPort
до 8888 для HTTP-трафика и
https.proxyHost
/https.proxyPort
для трафика HTTPS.
Для трафика HTTPS вам также необходимо добавить корневой сертификат Fiddler (экспортируемый в диалоговом окне параметров) в качестве доверенного сертификата в ваше приложение.
Вы можете сделать это, добавив следующие строки в начале вашего кода
System.setProperty("http.proxyHost", "localhost");
System.setProperty("http.proxyPort", "8888");
или установите их через командную строку при запуске Java-VM:
java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8888 ...
Ответ 2
С Jetty HTTP-клиентом предыдущее решение не работает. Однако следующие работы:
HttpClient httpClient = new HttpClient();
httpClient.setProxy(new Address("127.0.0.1", 8888));
httpClient.start();