Как получить информацию о запросе и ответе в виде почтового запроса в Джерси? - PullRequest
0 голосов
/ 25 сентября 2018

Я новичок в Джерси, и у меня есть несколько вопросов по поводу фильтра джерси.Я пытаюсь получить некоторую информацию о запросе и ответ, используя фильтр.

Первый вопрос в фильтре запросов.Например, «requestContext.getHeaders ()» получит информацию заголовка запроса.Но я хочу только получить идентификатор запроса.Как я могу получить конкретное значение в информации заголовка?

Второй вопрос: любой класс или метод, который может получить информацию запроса (например, userid, timestamp, sessionid) и данные JSON ответа вместе в виде JSON POSTзапрос?

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

public class auditService implements ContainerRequestFilter, 
ContainerResponseFilter {

@Override
public void filter(ContainerRequestContext requestContext, 
 ContainerResponseContext responseContext) throws IOException {


      Object object = responseContext.getEntity();

   }


@Override
public void filter(ContainerRequestContext requestContext) throws IOException {

  Date requestDate = new Date();
  SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");

  StringBuilder sb = new StringBuilder();

  sb.append("-timestamp:  ").append(simpleDateFormat.format(requestDate));
  sb.append("-path:  ").append(requestContext.getUriInfo().getPath());
  sb.append("-user  ").append(requestContext.getSecurityContext().getUserPrincipal());
  sb.append("-header  ").append(requestContext.getHeaders());
  sb.append("-entity  ").append(requestContext.getEntityStream());

  System.out.println("the request:" + sb.toString());
    } 
 }

Редактировать: я получаю конкретное значение, используя @Context HttpServletResquest.

...