Я создаю универсальный веб-сервис, и мне нужно собрать все параметры запроса в одну строку для последующего анализа. Как я могу это сделать?
Ответы:
Вы можете получить доступ к одному параметру @QueryParam("name")
или всем параметрам через контекст:
@POST
public Response postSomething(@QueryParam("name") String name, @Context UriInfo uriInfo, String content) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}
Ключом является @Context
аннотация jax-rs , которая может использоваться для доступа:
UriInfo, Запрос, HttpHeaders, SecurityContext, Провайдеры
Добавляем еще немного к принятому ответу. Также можно получить все параметры запроса следующим образом, не добавляя дополнительный параметр к методу, что может быть полезно при ведении документации по swagger.
@Context
private UriInfo uriInfo;
@POST
public Response postSomething(@QueryParam("name") String name) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}