Fiddler не перехватывает HTTP-запросы из Java-приложения - PullRequest
23 голосов
/ 08 марта 2012

В настоящее время я пишу Java-приложение, которое использует HTTP POST для загрузки файла CSV и нескольких других параметров на сервер.Сервер возвращает 500 ошибок моему приложению, и я хотел бы просмотреть HTTP-запрос в Fiddler, чтобы я мог видеть запрос POST.
Когда я запускаю Fiddler, он не будет захватывать какой-либо HTTP-трафик из приложения Java.Я написал запрос GET, который работает, поэтому я знаю, что могу общаться с сервером, однако трафик через Fiddler не отображается.

Ответы [ 3 ]

20 голосов
/ 08 марта 2012

Вы можете просто установить 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 голосов
/ 24 июля 2013

С клиентом Jetty HTTP предыдущее решение не работает. Однако работает следующее:

HttpClient httpClient = new HttpClient();
httpClient.setProxy(new Address("127.0.0.1", 8888));
httpClient.start();
0 голосов
/ 22 октября 2018

С EasyRestClient используйте это:

ClientBuilder builder = new ResteasyClientBuilder().defaultProxy("localhost", 8888, "http");
...