Получить содержание тела с помощью HttpServletRequest в Джерси - PullRequest
1 голос
/ 03 июля 2011

Я использую Jersey 1.7, и я пытаюсь получить доступ к телу запроса в моем методе, очень похожем на этот вопрос: Как мне прочитать параметры POST для службы RESTful с использованием Jersey? Значение тела в порядкекак email=xx@ws.com&password=test1

Я пытался использовать запрос @Context HttpServletRequest и пытался получить доступ к электронной почте с помощью request.getParameter ("email"), но ничего не получил.Внутри request.getparameterMap () тоже ничего нет.

Мой API выглядит следующим образом: @POST @Produces (...) public Response getData (@FormParam ("email") Строковое письмо, @FormParam ("password ") String password, String body, запрос @Context HttpServletRequest) {....

Я пытался изменить положение тела String и запроса, но безрезультатно.

Тело String получаетзначение прекрасно (оно исходит от устройства iPhone, а не от отправки формы и поэтому отображается в теле строки).Сейчас я пытаюсь разобрать содержимое тела (email=xx@ws.com&password=test1) и вывести каждую переменную, например, электронную почту, но это болезненно.

Есть ли какой-нибудь способ получить значения с помощью запроса.getParameter ("email")?

Или есть какая-нибудь быстрая утилита для преобразования основного текста в строковый email и строковый пароль?

TIA, Vijay

1 Ответ

3 голосов
/ 06 июля 2011

Я никогда не использовал параметры формы самостоятельно, но в документах говорится, что это должно работать с тех пор:

@POST
@Consumes("application/x-www-form-urlencoded")
public void post(MultivaluedMap<String, String> formParams) {
    // Store the message
}

http://wikis.sun.com/display/Jersey/Overview+of+JAX-RS+1.0+Features

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...