java - ¿Cómo maneja el cliente Restlet el tipo de medio de solicitud?
json http-headers (1)
Tengo varias preguntas nuevas sobre cómo el cliente de Restlet maneja el encabezado del tipo de medios:
- ¿Qué pondrá el cliente Restlet en el encabezado ''content-type'' si paso en una entidad de tipo a) un POJO ob) una instancia de InputStream? ¿Y cuál será el encabezado ''aceptar''?
- Si deseo transferir un POJO en formato JSON en el cuerpo HTTP, ¿necesito serializar el POJO y pasarlo como una cadena JSON o puedo pasar el POJO y Restlet hará el resto? Si es el primer caso, ¿debo especificar el encabezado ''content-type'' y cómo?
¡Muchas gracias!
Si confía en la clase ClientResource, puede agregar un parámetro MediaType a su llamada directa, como
put(myPojo, MediaType.APPLICATION_JSON);
ACTUALIZAR En realidad, el parámetro de tipo de medio adicional define el tipo de resultado aceptado esperado del recurso remoto, pero no se aplica a la entidad enviada.
El control sobre el tipo de medio de la entidad / POJO enviado se basa en la configuración predeterminada de ConverterService, que depende de las extensiones disponibles en su classpath y su orden respectivo.
Usted puede tener control total al invocar directamente el
ClientResource cr = new ClientResource("http://targetDomain/path");
cr.put(cr.toRepresentation(myPojo, new Variant(MediaType.APPLICATION_JSON));
También necesita agregar la extensión org.restlet.ext.jackson en su classpath y sus dependencias. La extensión XStream es otra opción.