我尝试将旧的phonegap 1.0应用程序带入Apache Cardova的VS工具中。它调用旧的WCF XML Web服务。当我使用本地代理在Ripple Emulator中运行应用程序时,我从WCF Web服务收到400错误。经过一番挖掘后,我在C:\ Users \ user_name \ AppData \ Roaming \ npm \ node_modules \ vs-mda \ node_modules \ ripple-emulator \ lib \ server \ proxy.js第85-91行找到了问题:
if (Object.keys(req.body).length > 0) {
if (req.is("json")) {
proxyReqData.body = JSON.stringify(req.body);
} else {
proxyReqData.form = req.body;
}
}
如果请求不是json,则代码会将其更改为表单,以便Ripple代理不支持XML Web服务。我在这个地方修复了代码,但项目构建没有把它修好。我也没有一个好方法来调试我的proxy.js版本。任何建议都将不胜感激。
答案 0 :(得分:1)
我自己想出了解决办法。我找到的proxy.js是正确的位置。但是,我必须对proxy.js进行一些更改才能使其与soap Web服务一起使用。请注意,只有您调用soap Web服务时,我的更改才有效。
用app.use(express.bodyParser())注释掉这一行;并在此帖子中使用原始解析器替换它:Expressjs raw body
用我的问题替换代码块:
proxyReqData.form = req.body;