Office Online:WOPI PutFile正在收到一个空的请求

我正在实施WOPI服务器,尝试与Office Online集成。 当WOPI客户端调用PutFile方法(保存文件)时,它发送一个空请求(req.body.length === 0)。 这是Node / Express代码:

app.post('/wopi/files/:fileId/contents', function (req, res) { console.log(req.body.length); ... 

任何build议,高度赞赏。

       

网上收集的解决方案 "Office Online:WOPI PutFile正在收到一个空的请求"

如果您要将WOPI主机与Office Online集成,我假设您或您的公司可能已经在Microsoft的所谓Office 365云存储合作伙伴计划

如果是这样的话,那么你可以在Yammerfind他们积极的支持团队。 在那里你可以发布你的查询,这将是努力回答。

我find了答案:

在bodyParser中间件之前放置下面的中间件。 它会收集request.rawBody中的原始数据,不会干扰bodyParser。

 app.use(function(req, res, next) { var data = ''; req.setEncoding('utf8'); req.on('data', function(chunk) { data += chunk; }); req.on('end', function() { req.rawBody = data; next(); }); }); app.use(express.bodyParser()); 

有关更多信息,请参阅此处: https : //stackoverflow.com/a/13565786/5976568

编辑:

raw-body-parser ,节点包非常好,我在我的解决scheme中使用它。

 var rawBodyParser = require('raw-body-parser'); app.use(rawBodyParser()); 

获取原始数据:

 var rawBody = req.rawBody.toString('utf8');