2009-05-24 10 views
7

Estoy tratando de enviar un byte [] (usando PUT) con Restlet, pero no puedo encontrar ninguna información sobre cómo hacerlo. Mi código es el siguiente:Envío de datos binarios con el cliente de Restlet

Request request = new Request(Method.PUT, url); 
request.setEntity(WHAT DO I PUT HERE?, MediaType.APPLICATION_OCTET_STREAM); 

lo que esperaba encontrar algo en la línea de ByteArrayRepresentation, al igual que hay un JsonRepresentation y un StringRepresentation pero no pude encontrar nada.

Respuesta

7

Creo que usted desea utilizar una InputRepresentation, así:

Representation representation = new InputRepresentation(new ByteArrayInputStream(bytes), MediaType.APPLICATION_OCTET_STREAM); 
request.setEntity(representation); 
+0

Eso se ve perfecto, gracias! – Yrlec

1

No estoy familiarizado con restlet, pero una forma de hacerlo sería codificar64 base64. Entonces podrías manejarlo como una cadena regular.

+0

Gracias Emil pero eso no es lo suficientemente eficiente en este caso. Este código enviará grandes cantidades de datos, por lo que tener que enviar un 33% más de datos no es una opción. – Yrlec

+0

Sí, algo calculado. Aunque pensé que lo mencionaría de todos modos. :) –

1

se puede tratar de subclases WritableRepresentation que está especialmente diseñado para grandes representaciones

Cuestiones relacionadas