【问题标题】:NodeJS express SOAPNodeJS 表达 SOAP
【发布时间】:2016-01-19 02:45:40
【问题描述】:

我正在使用 express 和 bodyparser 消费一个soap请求,但是该请求在消费时没有正确格式化,即第一个等号(=)符号被转换为冒号(:),即

下面是我的代码:

var express = require("express");
var app = express();
var bodyParser = require("body-parser");
require('body-parser-xml')(bodyParser);

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.xml());

app.get('/',function(req,res){
  res.send("hello");
});

app.post('/soap',function(req,res){
  req.setEncoding('utf8');
  var request = req.body;
  console.log(request);

  res.end("yes");
});

var server = app.listen(3000, function () {
  var host = server.address().address
  var port = server.address().port
  console.log("App listening at http://%s:%s", host, port)
})

【问题讨论】:

  • xml 请求如下所示:
  • 你应该阅读How to Ask
  • 客户端很可能没有使用正确的内容类型来上传 XML 数据,因此 Express 认为它​​是 url 编码的数据。见the fine manual
  • 我正在使用 curl: curl -d @soap.xml "localhost:3000/url"
  • 另外,当我使用 postman,raw 时,它会产生类似的结果

标签: node.js express


【解决方案1】:

得到答案,客户端使用不正确的(文本)内容类型发送数据。使用 postman,确保将内容类型设置为 text/xml 或 application/xml。

【讨论】:

    猜你喜欢
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 2018-03-28
    相关资源
    最近更新 更多