2009-05-24 25 views
7

Restlet ile bir bayt [] (PUT kullanarak) göndermeye çalışıyorum ama nasıl yapılacağı konusunda bilgi bulamıyorum. Benim kod şöyle görünür:Restlet istemcisi ile ikili veri gönderme

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

Orada bir JsonRepresentation ve bir StringRepresentation ama ben bir şey bulamadık gibi, ByteArrayRepresentation çizgisinde bir şey bulmak için bekliyordu.

cevap

7

seni o kadar gibi bir InputRepresentation kullanmak istediğiniz inanıyoruz:

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

Mükemmel görünüyor, teşekkürler! – Yrlec

1

Restlet'le aşina değilim, ancak bunu yapmanın bir yolu, verileri kodlamak için base64 olacaktı. O zaman bunu normal bir ip gibi halledebilirsin.

+0

Teşekkür Emil ama bu durumda yeterince verimli değildir için tasarlanmıştır WritableRepresentation sınıflara deneyebilirsiniz. Bu kod büyük miktarda veri gönderecek ve% 33 daha fazla veri göndermek zorunda kalmayacak bir seçenek. – Yrlec

+0

Evet, biraz düşündüm. Yine de olsa bahsetmeyi düşündüm. :) –

1

Eğer özellikle büyük temsiller