2009-05-24 132 views
7

我想用Restlet發送一個byte [](使用PUT),但是我找不到任何有關如何操作的信息。我的代碼如下所示:使用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); 
1

我對restlet並不熟悉,但實現它的一種方法是對base64進行數據編碼。然後你可以像處理常規字符串一樣處理它。

+0

謝謝周華健,但不是在這種情況下足夠的效率而設計的。此代碼將發送大量數據,因此不得不發送33%以上的數據。 – Yrlec 2009-05-24 18:26:33

+0

是的,有點想。無論如何,我認爲我會提及它。 :) – 2009-05-24 19:24:06

1

你可以嘗試繼承WritableRepresentation是特別適用於大型表示

相關問題