15

私はSpring Restful Webサービスを使用しており、以下に示すようにリクエストヘッダー付きのリクエストボディを持っています:

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

「X-MyHeader」というオプションのリクエスト ヘッダーをもう 1 つ渡したいと思います。Spring REST サービスでこのオプションのリクエスト ヘッダーを指定するにはどうすればよいですか?

また、この同じ値を応答ヘッダーに渡すにはどうすればよいですか?? ありがとう!

更新: リクエスト ヘッダーで required=false を設定できることがわかったので、1 つの問題が解決されました。さて、残っている唯一の問題は、応答にヘッダーを設定する方法ですか??

4

2 に答える 2

17

あなたの中で使用required=falseしてください@RequestHeader

@RequestMapping(value = "/mykey", method = RequestMethod.POST, 
consumes="applicaton/json")
public ResponseEntity<String> getData(@RequestBody String body, 
@RequestHeader(value = "Auth", required = false) String authorization)  {
    try {
   ....
    } catch (Exception e) {
        ....
    }
}
于 2020-08-21T05:31:40.560 に答える
4

この質問への回答はこちら: In Spring MVC, how can I set the mime type header when using @ResponseBody

以下は、 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);
}
于 2013-01-22T15:51:19.493 に答える