Как мне извлечь клиентские данные из httpheaders?

#spring #http-headers

#spring #http-заголовки

Вопрос:

У меня есть post-запрос для входа в систему.

 @RequestMapping(value = EWPRestContants.DO_LOGIN, method = RequestMethod.POST, consumes=MediaType.APPLICATION_XML_VALUE,produces=MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<String> doLogin(@RequestBody Loginrequest logReq,@RequestHeader HttpHeaders headers, HttpServletRequest request, HttpServletResponse httpResponse) throws Exception {
   //........
     }
  

Я хочу извлечь данные из заголовка. Есть ли API для этого?

Предположим, мой заголовок содержит номер msIsdn клиента и его имя. Как мне получить эти данные. getFirst() используется для получения сведений об агенте пользователя или только начальной строки.

Это ответ. String id= headers.getFirst("ID");

Ответ №1:

Нравится

@RequestHeader(значение =»User-Agent», defaultValue=»foo») String UserAgent

 @RequestMapping(value = EWPRestContants.DO_LOGIN, method = RequestMethod.POST, consumes=MediaType.APPLICATION_XML_VALUE,produces=MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<String> doLogin(@RequestBody Loginrequest logReq,@RequestHeader(value="User-Agent", defaultValue="foo") String userAgent,@RequestHeader(value="Accept-Language") String acceptLanguage, HttpServletRequest request, HttpServletResponse httpResponse) throws Exception {
   //........
     }
  

или из

     @RequestMapping(value = EWPRestContants.DO_LOGIN, method = RequestMethod.POST, consumes=MediaType.APPLICATION_XML_VALUE,produces=MediaType.TEXT_PLAIN_VALUE)
    public ResponseEntity<String> doLogin(@RequestBody Loginrequest logReq,@RequestHeader HttpHeaders headers, HttpServletRequest request, HttpServletResponse httpResponse) throws Exception {
String userAgent = headers.getFirst(HttpHeaders.USER_AGENT);
         }
  

Комментарии:

1. Из второго решения USER_AGENT cannot be resolved or is not a field я получаю следующую ошибку.

2. Спасибо @kuhajeyan за ваши усилия.