개발/Java

RestTemplat 등 jvm 패킷 피들러로 디버깅 하기

함께자라기 2022. 3. 24. 13:17

restTemplat을 사용하여 api 연계하는 도중 restTemplat으로 보내는 요청도 피들러로 확인을 하고 싶었다

 

만약 api 개발을 한다면 이런 경우가 많을 것 같아서 방법이 없나 찾아 봤더니 피들러 홈페이지에 답이 있었다

 

피들러나 네트워크로 RestTemplat, WebClinet 등 jvm에서 보내는 요청에 대한 패킷은 일반적으로 보이지 않는다

 

따라서 피들러로 해당 요청에 관한 내용을 보고 싶은 경우 따로 proxy 설정을 해줘야 한다

 

 

1. jvm 으로 설정하는 방법

    jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp
    
    jre -DproxySet=true -DproxyHost=127.0.0.1 -DproxyPort=8888 MyApp

 

2. 소스코드를 변경해서 설정하는 방법

    https 인 경우
    System.setProperty("http.proxyHost", "127.0.0.1");
    System.setProperty("https.proxyHost", "127.0.0.1");
    
    http인 경우
    System.setProperty("http.proxyPort", "8888");
    System.setProperty("https.proxyPort", "8888");

 

jvm을 바꾸는것 보다는 그냥 아래처럼 만들어서 테스트 할 코드에서 호출한 후 피들러로 확인 하는게 편한것 같다

    void enableProxy() {
    	System.setProperty("http.proxyHost", "127.0.0.1");
    	System.setProperty("http.proxyPort", "8888");
    }

 

참고

https://docs.telerik.com/fiddler/configure-fiddler/tasks/configurejavaapp