Как получить доступ к информации заголовка HTTP в Spring MVC REST controller?


Я новичок в веб-программировании в целом, особенно в Java, поэтому я только что узнал, что такое заголовок и тело.

Я пишу RESTful services с помощью Spring MVC. Я могу создавать простые сервисы с помощью @RequestMapping в мои контроллеры. Мне нужна помощь в понимании того, как получить информацию заголовка HTTP из запроса, который поступает в мой метод в моем контроллере службы REST. Я хотел бы разобрать заголовок и получить некоторые атрибуты из него.

не могли бы вы объяснить, как я иду о получении этой информации?

3 102

3 ответа:

при аннотировании параметра с @RequestHeader параметр извлекает информацию заголовка. Так что вы можете просто сделать что-то вроде этого:

@RequestHeader("Accept")

для получения

можно использовать @RequestHeader аннотации HttpHeaders параметр метода для получения доступа ко всем заголовкам запроса:

@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);
    // ...
}

мое решение в параметрах заголовка пример user= "test" - это:

@RequestMapping(value = "/restURL")
  public String serveRest(@RequestBody String body, @RequestHeader HttpHeaders headers){

System.out.println(headers.get("user"));
}