2013-07-03 44 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 ...是你的字节数组

相关问题