Джерси: объединить все данные POST в один объект
Я использую Джерси 1.8 в моем приложении. Я пытаюсь потреблятьPOST
данные на сервере. Данные имеют типapplication/x-www-form-urlencoded
. Есть ли способ получить все данные в одном объекте, может бытьMap<String, Object>
.
Я столкнулся с Джерси@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
, Но использование этого потребовало бы от меня использования@FormParam
, что может быть утомительно, если количество параметров огромно. Или, может быть, один из способов это:
@POST
@Path("/urienodedeample")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Response uriEncodedExample(String uriInfo){
logger.info(uriInfo);
//process data
return Response.status(200).build();
}
Приведенный выше код потребляет и представляет данные формы в видеString
объект.
_search=false&nd=1373722302667&rows=10&page=1&sidx=email&sord=desc
Обработка этого может быть подвержена ошибкам, как и любой неуместный&
и split () вернет поврежденные данные.
Я использовал UriInfo для большей части моей работы, которая дала бы мне параметры запроса вMultiValuedMap
или для других запросов POST, отправил полезную нагрузку вjson
формат, который, в свою очередь, будет разобран вMap<String, Object>
, Любые предложения о том, как я могу сделать то же самое, если данные POST имеют типapplication/x-www-form-urlencoded
.