Cómo enviar una solicitud getForObject con parámetros Spring MVC
Tengo un método en el lado del servidor que me da la información sobre un nombre específico registrado en mi base de datos. Lo accedo desde mi aplicación de Android.
La solicitud a servidor se realiza normalmente. Lo que estoy tratando de hacer es pasar el parámetro al servidor dependiendo del nombre que quiero obtener.
- Jackson JsonParseException: Byte medio de UTF-8 no válido
- Spring MVC, Thymeleaf y REST
- Android websocket sockjs cliente para java primavera basada webserver
- No se puede deserializar instancia de objeto de START_ARRAY token en Spring 3 REST Webservice
- HttpMessageNotReadableException: no se pudo leer JSON: campo no reconocido con Spring para Android
Aquí está mi método del lado del servidor:
@RequestMapping("/android/played") public ModelAndView getName(String name) { System.out.println("Requested name: " + name); ........ }
Aquí tienes la solicitud de 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); }
En el lado del servidor, sólo estoy recibiendo:
Requested name: null
¿Es posible enviar parámetros a mi servidor de esta manera?
- Validación del lado del servidor de token de Google Access para la aplicación de Android
- El resorte de solicitud de varias partes no enlaza datos de archivo
- ClassCastException: RestTemplate devuelve Lista <LinkedHashMap> en lugar de List <MymodelClass>
- Subida múltiple de archivos con OkHttp + Spring
- Primavera para Android, progreso de subida de archivos
- Spring RestTemplate: publicar una imagen y un objeto al mismo tiempo
- Android Spring Jackson Mapping: NoClassDefFoundError
- ¿Cómo convertir Spring MVC a un proyecto Android usando PhoneGap?
La plantilla restante espera que la variable "{nombre}" esté allí para reemplazarla.
Lo que creo que estás buscando hacer es construir una URL con parámetros de consulta que tienes una de dos opciones:
- Utilizar un UriComponentsBuilder y agregar los parámetros por ese
- String url = BASE_URL + "/android/played.json?name={name}"
Opción 1 es mucho más flexible sin embargo. La opción 2 es más directa si sólo necesita hacer esto.
Ejemplo solicitado
// 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);