2017-12-21 1 views
1

내 SpringBoot 앱은 JSON을 소비/생성하는 외부 API에 대한 HTTP 요청을 작성합니다. 기본적으로 내 응용 프로그램은 Jackson을 데이터 바인딩에 사용하고 RestTemplate을 사용하는 모든 HTTP 요청은 및 Content-Type 헤더를 application/json으로 사용했습니다.HTTP 요청의 기본 MediaType

최근에 나는 http 데이터 바인딩을위한 것이 아니라 Jackson xml 데이터 바인딩 라이브러리를 사용해야했다. 그래서 나는 앱에 의존성을 포함시켰다. 그리고 SpringBoot는 모든 나가는 HTTP 요청에 대해 암시 적으로 application/xml을 사용하기로 결정했다. .

요청마다 헤더를 명시 적으로 설정하지 않고도 HTTP 요청을 할 때 응용 프로그램을 JSON으로 기본 설정하려면 어떻게해야합니까? 아래 그림과 같이

답변

1

간단히 무시하고 WebMvcConfigurerAdapter#configureContentNegotiation(ContentNegotiationConfigurer)의 기본 콘텐츠 형식을 구성

@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { 
     configurer.defaultContentType(MediaType.APPLICATION_JSON); 
    } 
} 
+0

은 이미 시도하고 작동하지 않았다. 나가는 요청은 Content-Type'application/xml'과 함께 보내지는 것 같습니다. 외부 API는 415 코드로 응답합니다. 'RestTemplate' 객체에서 http 메시지 변환기를 볼 때, 이들은 json 객체가 아닌 fasterxml의 xml 객체입니다. 어떻게 든 구성 할 필요가 있다고 가정합니다. – user1491636