L'invio di dati binari con il cliente Restlet
Domanda
Sto cercando di inviare un byte [] (usando PUT) con Restlet ma non riesco a trovare alcuna info su come farlo. Il mio codice è simile al seguente:
Request request = new Request(Method.PUT, url);
request.setEntity( WHAT DO I PUT HERE?, MediaType.APPLICATION_OCTET_STREAM);
Mi aspettavo di trovare qualcosa lungo le linee di ByteArrayRepresentation, proprio come se ci fosse un JsonRepresentation e uno StringRepresentation ma non ho trovato nulla.
Soluzione
Io credo che si desidera utilizzare un InputRepresentation , in questo modo:
Representation representation = new InputRepresentation(new ByteArrayInputStream(bytes), MediaType.APPLICATION_OCTET_STREAM);
request.setEntity(representation);
Altri suggerimenti
Non ho familiarità con Restlet, ma un modo per farlo sarebbe quello di base64 codificare i dati. Poi si potrebbe gestire la cosa come una stringa regolare.
si può provare WritableRepresentation
sottoclassi che è stato appositamente progettato per le grandi rappresentazioni
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow