DESCARGO DE RESPONSABILIDAD: Hice una búsqueda exhaustiva de una respuesta a esta pregunta, y sí, encontré esta otra pregunta: https://stackoverflow.com/questions/10315728/how-to-send-parameters-as-formparam-to-webservice. Pero, en primer lugar, esa pregunta es acerca de Javascript, mientras pregunto por Java, y en segundo lugar, no tiene respuestas de todos modos. Así que a la pregunta ...¿Cómo puedo pasar un @FormParam a un servicio RESTful desde otro método?
Con los servicios RESTful, pasar @QueryParam
s a un servicio es bastante fácil, ya que simplemente puede agregar pares de nombre/valor de variables a una URL y usarlos para acceder al servidor desde dentro del programa. ¿Hay alguna manera de hacer esto con @FormParam
s también?
Por ejemplo, digamos que tengo el siguiente servicio REST:
@POST
@Produces("application/xml")
@Path("/processInfo")
public String processInfo(@FormParam("userId") String userId,
@FormParam("deviceId") String deviceId,
@FormParam("comments") String comments) {
/*
* Process stuff and return
*/
}
... y digamos que también tengo otro método en otro lugar en mi programa como este:
public void updateValues(String comments) {
String userId = getUserId();
String deviceId = getDeviceId();
/*
* Send the information to the /processInfo service
*/
}
Cómo ¿Puedo realizar la acción comentada en el segundo método?
NOTA: Suponga que estos métodos no están en la misma clase o paquete. Supongamos también que el servicio RESTful está alojado en un servidor diferente de que la máquina desde la que ejecuta el método. Como tal, debe acceder al método y pasar los valores de forma RESTful.
¡Gracias por tu ayuda!
Puede pasar parámetros de forma de este tipo, uso com.sun.jersey.api.representation.Form de la siguiente manera. Formulario f = new Form(); f.add ("userId", "foo"); f.add ("deviceId", "bar"); f.add ("comentarios", "Dispositivo"); // Interfaces fluidas service.path ("processInfo"). Accept (MediaType.APPLICATION_XML) .post (String.class, f); –
¡Eso es genial! ¿Podría agregar eso a su respuesta y explicar la última línea un poco más? Este: 'service.path (" processInfo "). Accept (MediaType.APPLICATION_XML) .post (String.class, f)' Entonces lo acepto. :) – asteri
Específicamente, ¿cuál es el objeto 'service' al que está invocando' path() '? – asteri