Аннотации Android: параметры запроса добавляются в URL?

@Get("/ServiceTest?version=1&dateRange={dateRange}")
ResponseModel getDateRangeTest(String dateRange);

в интерфейсе RestClient это делает следующее Get

http://localhost:8080/ServiceTest/2014-01-29%25202014-01-29?version=1" resulted in 400 (Bad Request); invoking error handler

Я делаю что-то не так при отправке параметров запроса.

Я хочу обратиться таким образом:

/ServiceTest?version=1&dataRange=2014-01-29%25202014-01-29

Который в этом случае почему-то мне не удалось сгенерировать с помощью аннотаций Android @Get

Ответ: Мои звонки не были правильными, и основная проблема была с URI-кодировкой, правильный -

/ServiceTest?version=1&dataRange=2014-01-29%202014-01-29

1 ответ

Решение

Вы могли бы сделать неправильно.

Ваш сервер получит /ServiceTest
но вы получаете доступ к серверу с адресом /ServiceTest/2014-01-29%25202014-01-29

Будьте внимательны, ваш сервер получает как /ServiceTest? Version = 1 & dateRange ={dateRange}, а {dataRange} - это то, что вы намереваетесь предоставить в качестве переменной.

Ваш адрес должен быть /ServiceTest?version=1&dataRange=2014-01-29%25202014-01-29

== РЕДАКТИРОВАТЬ ==

Я не знаком с Android Получить аннотацию, но попробуйте это.

@Get("/ServiceTest?version=1&dateStart={dateStart}&dateEnd={dateEnd}")
ResponseModel getDateRangeTest(String dateStart, String dateEnd);

и доступ с /ServiceTest?version=1&dataStart=2014-01-29&dateEnd=2014-01-29

Обратите внимание, что я меняю аргумент на более конкретный. и это был бы лучший подход.

Другие вопросы по тегам