복붙노트

[SPRING] POST 데이터를 기록하는 RestTemplate

SPRING

POST 데이터를 기록하는 RestTemplate

POST 요청시 my resttemplate.exchange ()가 실패하여 서버가 500 오류를 반환했습니다.

루트 로깅 수준을 DEBUG로 설정하려고했지만 500 오류가 반환되기 전에 아무것도 기록되지 않았습니다. 내 로깅 설정이 올바른지 확인하기 위해 resttemplate 호출 전에 한 줄을 추가했습니다.

HttpClient client = new DefaultHttpClient();
client.execute(new HttpGet("http://google.com"));

이 경우 실제로 많은 로깅 메시지가 나타납니다.

그래서 어떻게 RestTemplate 디버깅 데이터를 내보낼 수 있습니까?

고마워. 양

해결법

  1. ==============================

    1.분석을 통해 RestTemplate이 Apache HttpClient를 사용할 것으로 기대합니다.

    분석을 통해 RestTemplate이 Apache HttpClient를 사용할 것으로 기대합니다.

    그러나 기본적으로 Spring RestTemplate은 Apache HttpClient를 사용하지 않지만 SimpleClientHttpRequestFactory를 통해 JDK 기능 (java.net.URL # openConnection () 등)을 사용합니다.

    org.springframework.http.client.support.HttpAccessor 선언 :

    private ClientHttpRequestFactory requestFactory = new
    SimpleClientHttpRequestFactory();
    

    내가 아는 한,이 클라이언트는 로깅 요청 / 응답을 지원하지 않습니다.

    HttpClient를 사용하도록 RestTemplate을 변경하려면 다음을 시도하십시오.

    new RestTemplate(new HttpComponentsClientHttpRequestFactory());
    

    로깅 설정은 전체 요청 / 응답을 기록하기 위해 level debug에서 카테고리 org.apache.http.wire를 활성화해야합니다.

  2. from https://stackoverflow.com/questions/16573501/resttemplate-logging-post-data by cc-by-sa and MIT license