POST中的字节数组Javascript

时间:2018-02-08 19:44:07

标签: javascript java json ajax phonegap

我正在开发一个进行REST API调用的PhoneGap应用程序。到目前为止,GET调用一直正常工作,但其中一个POST需要一个文件的字节数组作为其预期的JSON的一部分。

{  
“FileBytes”: [Byte array of file here]  
}

我在所选文件上使用了FileReader()和readAsArrayBuffer。我想检查byteArray是否是我需要的,所以我尝试将它登录到控制台,我在IE中看了一下。

var file = evt.target.files[0];
var reader = new FileReader();
reader.onload = (function () {
    var buffer = reader.result;
    console.log(buffer);        
    console.log(new String(buffer));

});
reader.readAsArrayBuffer(file);

第一个给了我[object ArrayBuffer] {byteLength:185955} 第二个给了我[object String] {0:“[”,1:“o”,2:“b”,3:“j”,4:“e”,5:“c”,6:“t” ,7:“”,8:“A”,9:“r”,10:“r”,11:“a”,12:“y”,13:“B”,14:“你”,15: “f”,16:“f”,17:“e”,18:“r”,19:“]”,长度:20 ......}

第一个看起来它包含我想要的内容,但我不知道如何在JSON中配对它以进行POST调用。

编辑:我最初使用Java在Android Studio中创建了这个应用程序。通过将bytearray转换为StringEntity,我能够使调用工作:

entity = new StringEntity("{\"FileBytes\": \"" + new String(byteArray) + "\"");

从那里我可以使用android-async-http来处理POST。该实体用作如下参数:

client.post(getApplicationContext(), url, entity, "application/json", 
    new AsyncHttpResponseHandler() {  

我将String(byteArray)记录到控制台,结果是这样的:JSVYUlhiZWdpbgolJU9JRF9BVFRf ...
我只是不确定如何在Javascript中复制它。

0 个答案:

没有答案