Office Online:WOPI PutFile获取空请求

时间:2016-01-18 22:29:35

标签: javascript node.js ms-word ms-office ms-wopi

我正在实施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);
...  

非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

我找到了答案:

将以下中间件放在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,节点包非常好,我在我的解决方案中使用它。

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

app.use(rawBodyParser());

获取原始数据:

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

答案 1 :(得分:0)

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

如果情况确实如此,那么您可以联系他们在Yammer的积极支持团队。在那里,您可以发布您的疑问,这些问题将得到认真回答。