【问题标题】:How to send xml post params with the help of node.js如何在 node.js 的帮助下发送 xml post 参数
【发布时间】:2015-10-20 14:31:12
【问题描述】:

尝试通过节点 js 将 XML 数据发布到以下 url:-

var request = require("request");
var utf8 = require('utf8');



var abc = '<ENVELOPE><HEADER><TALLYREQUEST>Export Data</TALLYREQUEST></HEADER><BODY><EXPORTDATA><REQUESTDESC><REPORTNAME>Stock Summary</REPORTNAME><STATICVARIABLES><EXPLODEFLAG>Yes</EXPLODEFLAG><SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT><ACCOUNTTYPE>All Inventory Masters</ACCOUNTTYPE></STATICVARIABLES></REQUESTDESC></EXPORTDATA></BODY></ENVELOPE>';

request.post({
    url:"http://192.168.1.148",
    port: 9000,
    method:"POST",
    headers:{
        'Content-Type': 'application/xml',
    },
     body: abc
},
function(error, response, body){
    console.log(response.statusCode);
    console.log(body);
    console.log(error);
});

但解释器显示以下错误:-

console.log(response.statusCode);
                    ^
TypeError: Cannot read property 'statusCode' of undefined
at Request._callback (C:\Users\bliscar\prog10.js:18:25)
at self.callback (C:\Users\bliscar\node_modules\request\request.js:198:22)
at Request.emit (events.js:107:17)
at Request.onRequestError (C:\Users\bliscar\node_modules\request\request.js:

861:8) 在 ClientRequest.emit (events.js:107:17) 在 Socket.socketErrorListener (_http_client.js:271:9) 在 Socket.emit (events.js:107:17) 在 net.js:459:14 在 process._tickCallback (node.js:355:11)

无法解决问题所在。请帮忙解决。

【问题讨论】:

  • "但是解释器显示一些错误。" — 您是否考虑过告诉我们该错误可能是什么?
  • @Quentin :添加了错误,请您帮我解决这个问题,因为它非常紧急。

标签: xml node.js post http-post


【解决方案1】:

试试这个:-

    var request = require("request");
var utf8 = require('utf8');



var abc = '<ENVELOPE>
          <HEADER>
                    <VERSION>1</VERSION>
                    <STATUS>1</STATUS>
          </HEADER>
</ENVELOPE><ENVELOPE><HEADER><TALLYREQUEST>Export Data</TALLYREQUEST></HEADER><BODY><EXPORTDATA><REQUESTDESC><REPORTNAME>Stock Summary</REPORTNAME><STATICVARIABLES><EXPLODEFLAG>Yes</EXPLODEFLAG><SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT><ACCOUNTTYPE>All Inventory Masters</ACCOUNTTYPE></STATICVARIABLES></REQUESTDESC></EXPORTDATA></BODY></ENVELOPE>';

request.post({
    url:"http://192.168.1.148",
    port: 9000,
    method:"POST",
    headers:{
        'Content-Type': 'application/xml',
    },
     body: abc
},
function(error, response, body){
    console.log(response.statusCode);
    console.log(body);
    console.log(error);
});

基本上在您的 xml 中添加计数的版本控制。它不会显示任何错误,并且 xml 将被同步

【讨论】:

  • 我喜欢这段代码。快速提问。这个“var utf8 = require('utf8');”是什么意思?做什么?
【解决方案2】:

响应未定义。 这通常发生在服务器没有响应请求时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    相关资源
    最近更新 更多