2009-05-24 5 views
7

Я пытаюсь отправить байт [] (используя PUT) с помощью Restlet, но я не могу найти информацию о том, как это сделать. Мой код выглядит следующим образом:Отправка двоичных данных с помощью клиента Restlet

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

я ожидал найти что-то вдоль линий ByteArrayRepresentation, так же, как есть JsonRepresentation и а StringRepresentation, но я не мог найти ничего.

ответ

7

Я считаю, что вы хотите использовать InputRepresentation, например, так:

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

Это выглядит отлично, спасибо! – Yrlec

1

Я не знаком с реслитом, но одним из способов сделать это было бы, чтобы base64 закодировал данные. Затем вы можете обрабатывать его, как обычную строку.

+0

Благодаря Emil но не достаточно эффективен в этом случае. Этот код будет отправлять большие объемы данных, поэтому отправка 33% больше данных не является вариантом. – Yrlec

+0

Да, любопытная фигура. Думаю, я бы все-таки упомянул об этом. :) –

1

вы можете попробовать подклассов WritableRepresentation, который специально предназначен для больших представлений

Смежные вопросы