【问题标题】:What is ByteArrayEntity and equivalent in JavaScript什么是 ByteArrayEntity 和 JavaScript 中的等价物
【发布时间】:2013-07-01 20:00:17
【问题描述】:

我已尝试阅读所有我能找到的关于此的文档,但仍然对这实际上是什么以及如何接收它感到困惑。

我正在尝试在 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 中做完全相同的事情,我可以将它作为字节数组的字符串发送,即。 "[42,34,24,...]" 但假设他们必须期待在另一边,因此知道将其转换回数组?

提前致谢。

【问题讨论】:

    标签: java javascript xmlhttprequest http-post


    【解决方案1】:

    字节数组可能是 base 64 编码的。您可以在服务器上这样添加前缀,浏览器会将其视为图像数据。

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

    BBBBBB... 是你的字节数组

    【讨论】:

      【解决方案2】:

      已解决:谢谢,最终发现将其识别为图像的唯一方法是将其作为数组缓冲区中的 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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-11
        • 2014-12-06
        • 2011-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多