O envio de dados binários com o cliente Restlet
Pergunta
Eu estou tentando enviar um byte [] (usando PUT) com Restlet, mas não consigo encontrar qualquer informação sobre como fazê-lo. Meus olhares código como este:
Request request = new Request(Method.PUT, url);
request.setEntity( WHAT DO I PUT HERE?, MediaType.APPLICATION_OCTET_STREAM);
Eu esperava encontrar algo ao longo das linhas de ByteArrayRepresentation, assim como há uma JsonRepresentation e um StringRepresentation mas eu não consegui encontrar nada.
Solução
Eu acredito que você quiser usar um InputRepresentation , assim:
Representation representation = new InputRepresentation(new ByteArrayInputStream(bytes), MediaType.APPLICATION_OCTET_STREAM);
request.setEntity(representation);
Outras dicas
Eu não estou familiarizado com Restlet, mas uma maneira de fazer isso seria a base64 codificar os dados. Então você poderia lidar com isso como uma corda regular.
Você pode tentar a subclasse WritableRepresentation
que é especialmente concebido para grandes representações
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow