2013-09-25 1 views
0

Robospice를 사용하여 JSON API와 통신 중입니다. 이것은 내가 POST 요청의 헤더를 설정하는 방법이다 : 나는 것 같다 Content-Type:application/json를 (보낼 필요 {Content-Type=[application/json]} 유일한 헤더가 될 것을 내 서버 :스프링 변경 내용 형식 HTTP 헤더

mHttpHeaders = new HttpHeaders(); 
mHttpHeaders.add("Content-Type", "application/json"); 
Log.d(Global.TAG, mHttpHeaders.toString()); 

문제는 내가 그렇게 보이는 헤더를 얻을 수 있다는 것입니다 수락). 나는 그것을 바꿀 방법이 없다. (add()setContentType() 방법으로 시도해 보았다.) 어떻게해야합니까?

답변

1

다음과 같이 시도해야하며 저에게 적합합니다. 저는 Robospice에서 Spring Rest 템플릿을 사용하고 있습니다.

MediaType mediaType = new MediaType("application", "json"); 
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>(); 
acceptableMediaTypes.add(mediaType); 

HttpHeaders headers = new HttpHeaders(); 
headers.setAccept(acceptableMediaTypes); 
+0

'{Accept = [application/json]}'헤더를 제공합니다. –

+0

서버의 응답은 무엇입니까? –

+0

500 내부 서버 오류입니다.하지만 'curl'을 사용하여 해당 요청이 헤더에 관한 것인지 그리고 그 이유가 서버가 요청을 받아들이지 않는 이유 (즉, 헤더 서식 지정) 인지를 확인하려고했습니다. –

0

당신이 Log 문에서 볼

{Content-Type=[application/json]} 

그냥 toString() 메소드에 의해 반환되는 String입니다 출력, 그것은 전송 실제 헤더 아니다. 예를

를 들어
public static void main(String[] args) throws Exception { 
    HttpHeaders headers = new HttpHeaders(); 
    headers.add("Content-Type", "application/json"); 
    System.out.println(headers); 
} 

인쇄

{Content-Type=[application/json]} 

HttpClientHttpRequestBase (HttpGet, HttpPost 등)가 제대로 헤더가 잘 전송됩니다 사용하는 경우.