7

I'm trying to send a byte[] (using PUT) with Restlet but I can't find any info on how to do it. My code looks like this:

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

I had expected to find something along the lines of ByteArrayRepresentation, just like there's a JsonRepresentation and a a StringRepresentation but I couldn't find anything.

3 Answers 3

7

I believe you want to use an InputRepresentation, like so:

Representation representation = new InputRepresentation(new ByteArrayInputStream(bytes), MediaType.APPLICATION_OCTET_STREAM);
request.setEntity(representation);
Sign up to request clarification or add additional context in comments.

Comments

1

I'm not familiar with restlet, but one way to do it would be to base64 encode the data. Then you could handle it like a regular string.

2 Comments

Thanks Emil but that is not efficient enough in this case. This code will be sending large amounts of data so having to send 33% more data is not an option.
Yeah, kinda figured. Thought I'd mention it anyway, though. :)
1

you can try subclassing WritableRepresentation that is especially designed for large representations

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.