2013-07-03 70 views
0

我曾嘗試閱讀所有我能找到的文檔,並且仍然對這實際是什麼以及如何接收這些內容感到困惑。什麼是ByteArrayEntity和JavaScript中的等效內容

我想在javascript中重新創建一個連接api(最初用java編寫)。在Java正在發送圖像作爲byteArrayEntity:

HttpPost postRequest = new HttpPost(requestUrl); 
log("Request url: " + requestUrl); 

HttpParams params = new BasicHttpParams(); 
HttpConnectionParams.setConnectionTimeout(params, 30000); 
postRequest.setParams(params); 

HttpEntity entity = new ByteArrayEntity(photo); 
postRequest.setEntity(entity); 

Header header = new BasicHeader("Content-Type", "image/jpeg"); 
postRequest.addHeader(header); 
header = new BasicHeader("Accept", "application/json"); 
postRequest.addHeader(header); 

如何我可以做同樣的事情在JavaScript,以便它將無需對它進行任何進一步的操作被認可?

很明顯,我不能在JavaScript中做完全相同的事情,我可以將它作爲bytearray的字符串發送,即。 「[42,34,24,...]」,但他們可能會期待另一方,並知道如何將其轉換爲數組?

在此先感謝。

回答

0

解決:謝謝,最終發現,這被認爲是圖像的唯一方法是給它的arraybuffer內發送的Uint8Array。目前,接收軟件與此前的圖像不匹配,因此我不確定他們是否以某種其他方式期待此操作,但是httprequest被識別爲有效圖像。

var abufimg = new ArrayBuffer(array.length); 
var vu8img = new Uint8Array(abufimg); 
for(var y=0; y<array.length; y++){ 
    vu8img[y] = array[y]; 
}    

xhr.send(abufimg); 
0

可能是字節數組是base64編碼的。你可以在你的服務器上像這樣加前綴,瀏覽器會將它看作圖像數據。

data:image/jpeg;base64,BBBBBB... 

其中BBBBBB ...是你的字節數組

相關問題