2013-01-21 27 views
5

Używam Wiosna Restful usługę internetową & konieczności żądania ciało z nagłówka żądania, jak pokazano poniżej:Opcjonalnie nagłówka żądania w Spring Rest Służby

@RequestMapping(value = "/mykey", method = RequestMethod.POST, consumes="applicaton/json") 
public ResponseEntity<String> getData(@RequestBody String body, @RequestHeader("Auth") String authorization) { 
try { 
    .... 
} catch (Exception e) { 
    .... 
} 
} 

Chcę przekazać jeszcze jedną opcjonalny nagłówek żądania o nazwie „X-MyHeader ". Jak określić ten opcjonalny nagłówek żądania w usłudze odpoczynku wiosennego?

Ponadto, w jaki sposób przekazać tę samą wartość w nagłówku odpowiedzi? Dzięki!

AKTUALIZACJA: Właśnie stwierdziłem, że mogę ustawić required = false w nagłówku żądania, więc problem został rozwiązany. Pozostaje tylko kwestia, jak ustawić nagłówek w odpowiedzi?

+0

Zasługuje zauważyć, że '@ RequestHeader' jest tylko dla oryginalnych nagłówków w żądaniu, nie te dodane przez przechwytujący lub filtry. – Tiina

Odpowiedz

3

To pytanie jest tutaj: In Spring MVC, how can I set the mime type header when using @ResponseBody

Oto przykładowy kod z: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-httpentity

@RequestMapping("/something") 
public ResponseEntity<String> handle(HttpEntity<byte[]> requestEntity) throws UnsupportedEncodingException { 
    String requestHeader = requestEntity.getHeaders().getFirst("MyRequestHeader"); 
    byte[] requestBody = requestEntity.getBody(); 
    // do something with request header and body 

    HttpHeaders responseHeaders = new HttpHeaders(); 
    responseHeaders.set("MyResponseHeader", "MyValue"); 
    return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED); 
} 
Powiązane problemy