私はWebプログラミング全般、特にJavaについては初めてなので、ヘッダーと本体が何であるかを学びました。
私はSpring MVCを使ってRESTfulなサービスを書いています。私は私のコントローラの@RequestMapping
で簡単なサービスを作成することができます。私のRESTサービスコントローラで私のメソッドに来るリクエストからHTTPヘッダ情報を取得する方法を理解するのに助けが必要です。ヘッダを解析し、そこからいくつかの属性を取得したいです。
その情報を入手する方法について説明してください。
@RequestHeader
でパラメータに注釈を付けると、パラメータはヘッダ情報を取得します。だからあなたはちょうどこのようなことをすることができます:
@RequestHeader("Accept")
Accept
ヘッダーを取得します。
だから ドキュメント から:
@RequestMapping("/displayHeaderInfo.do")
public void displayHeaderInfo(@RequestHeader("Accept-Encoding") String encoding,
@RequestHeader("Keep-Alive") long keepAlive) {
}
Accept-Encoding
およびKeep-Alive
ヘッダー値は、それぞれencoding
およびkeepAlive
パラメーターで提供されています。
そして心配ありません。私たちはみんな何かを手に入れているのです。
HttpHeaders
メソッドパラメータで@RequestHeader
アノテーションを使用すると、すべてのリクエストヘッダにアクセスできます。
@RequestMapping(value = "/restURL")
public String serveRest(@RequestBody String body, @RequestHeader HttpHeaders headers) {
// Use headers to get the information about all the request headers
long contentLength = headers.getContentLength();
// ...
StreamSource source = new StreamSource(new StringReader(body));
YourObject obj = (YourObject) jaxb2Mashaller.unmarshal(source);
// ...
}
例とヘッダーのパラメータで私の解決策はユーザー= "テスト"です:
@RequestMapping(value = "/restURL")
public String serveRest(@RequestBody String body, @RequestHeader HttpHeaders headers){
System.out.println(headers.get("user"));
}