代理多部分请求会更改文件字节数组数据

时间:2016-07-22 00:19:42

标签: java node.js spring express proxy

我正在尝试将带有express-http-proxy的多部分文件请求代理到我的Java Spring后端,但由于某种原因,Spring收到的文件字节数组与上传的文件不同。例如,一个字节数组长度为3000的文件被转换为大约6000.任何想法为什么会发生这种情况?你见过类似的问题吗?

这是代理请求的代码段:

  var proxy = require('express-http-proxy');
  var apiProxy = proxy('http://localhost:8080', {
      forwardPath: function (req, res) {
          return '/api/v2/photos/upload';
      }
  });

  app.all("/api/upload", apiProxy);

2 个答案:

答案 0 :(得分:0)

自我注意:

默认情况下express-http-proxy将请求正文编码为utf-8。问题是请求体被重新编码,因此改变了数据。将reqBodyEncoding设置为null可确保请求正文保持不变:

var apiProxy = proxy('http://localhost:8080', {
      reqBodyEncoding: null,
      forwardPath: function (req, res) {
          return '/api/v2/photos/upload';
      }
  });

答案 1 :(得分:0)