Intereting Posts
Android: получите уникальный идентификатор уведомления Как узнать, какой маркер был нажат на Google Maps v2 для Android? «Не удалось найти класс« android.support.v4.app.FragmentActivity »« Ошибка Получение программной плотности экрана в андроиде? Как использовать ADB для отправки сенсорных событий на устройство с помощью команды sendevent? «Галерея типов устарела», Какая лучшая альтернатива? Не удается выполнить это действие внутри onLoadFinished Android: как фрагмент может принимать глобальную переменную Activity Как получать уведомления о каждом новом изображении, видимом в приложении галереи? Использование jars, которые используют классы java.beans (Introspector, BeanInfo или PropertyDescriptor) Не может найти keytool на mac Что такое orderInCategory в пункте меню ActionBar и почему он используется для …? Изменение стиля кодирования из-за производительности Android GC, насколько далеко? Android – Поделиться на Facebook, Twitter, Mail, ecc Выделите все слова, которые просматриваются с помощью EditText

Как отправить запрос getForObject с параметрами Spring MVC

У меня есть метод на стороне сервера, который дает мне информацию о конкретном имени, зарегистрированном в моей базе данных. Я получаю доступ к нему из своего приложения для Android.

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

Вот мой метод на стороне сервера:

@RequestMapping("/android/played") public ModelAndView getName(String name) { System.out.println("Requested name: " + name); ........ } 

Вот запрос Android на него:

 private Name getName() { RestTemplate restTemplate = new RestTemplate(); // Add the String message converter restTemplate.getMessageConverters().add( new MappingJacksonHttpMessageConverter()); restTemplate.setRequestFactory( new HttpComponentsClientHttpRequestFactory()); String url = BASE_URL + "/android/played.json"; String nome = "Testing"; Map<String, String> params = new HashMap<String, String>(); params.put("name", nome); return restTemplate.getForObject(url, Name.class, params); } 

На стороне сервера я получаю только:

 Requested name: null 

Возможно ли отправить параметры на мой сервер следующим образом?

Solutions Collecting From Web of "Как отправить запрос getForObject с параметрами Spring MVC"

Шаблон останова ожидает, что переменная «{name}» будет там, где она будет заменена.

Я думаю, что вы хотите создать URL-адрес с параметрами запроса, у вас есть один из двух вариантов:

  1. Используйте UriComponentsBuilder и добавьте параметры этим
  2. String url = BASE_URL + "/android/played.json?name={name}"

Вариант 1 намного более гибкий. Вариант 2 более прямой, если вам просто нужно это сделать.

Пример по запросу

 // Assuming BASE_URL is just a host url like http://www.somehost.com/ URI targetUrl= UriComponentsBuilder.fromUriString(BASE_URL) // Build the base link .path("/android/played.json") // Add path .queryParam("name", nome) // Add one or more query params .build() // Build the URL .encode() // Encode any URI items that need to be encoded .toUri(); // Convert to URI return restTemplate.getForObject(targetUrl, Name.class);