org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [tc.wo.mbseo.exchangediary.https.datas.TestData] and content type [text/html]
 
 몇일 동안 고생했던 오류 ㅠ
 
@Rest(rootUrl = "주소",converters = {GsonHttpMessageConverter.class} )
public interface HttpTest {
...
...
...
}
 
androidannotations 에서 rest templete 을 사용하는데 계속 이 오류 뜨는 경우.
 
서버에서 가져오는 값이 text/html 으로 오고 있기때문에 
 
GsonHttpMessageConverter 으로 변환할수 없기때문에 발생하는 오류입니다.
 
 
 
1. 텍스트에 대한 대응 추가.
 
 
이럴때에는 "converters =" 에서 
 
StringHttpMessageConverter.class 를 추가하여 텍스트에 대한 대응을 추가하면
 
리턴받는 값이 text 값으로 정상적으로 들어오게 됩니다.
 
@Rest(rootUrl = "주소",converters = {GsonHttpMessageConverter.class, StringHttpMessageConverter.class} )
public interface HttpTest {
...
...
...
}
 
 
2. server 에서 수정 하는 방법
 
 사실상 서버쪽에서 발생된 오류가 볼수있으며, json 포멧으로 넘기고 타입은 text/html 을 넘기기 때문에
 
발생된 것이므로 서버쪽에서 header 에서 추가해주면 됩니다.
 
header('Content-Type: application/json')

3. android 쪽에서 수정하는 방법

 

 RestTemplate getRestTemplate();

 

 void setRestTemplate(RestTemplate restTemplate);

 

를 추가하여 template에 접근할수있도록 변경한이후,

 

        GsonHttpMessageConverter converter = new GsonHttpMessageConverter();

        final List<MediaType> supportedMediaTypes = new LinkedList<MediaType>(converter.getSupportedMediaTypes());
        final MediaType mediaType = new MediaType( MediaType.TEXT_HTML.getType() );
        supportedMediaTypes.add(mediaType);

        converter.setSupportedMediaTypes(supportedMediaTypes);
        httpTest.getRestTemplate().getMessageConverters().add(converter);
 
GsonHttpMessageConverter 에서 파싱할수있는 타입을 추가해주시면 됩니다.

 

+ Recent posts