如何在node.js的帮助下发送xml post params

bli*_*car 1 xml post http-post node.js

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

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);
});
Run Code Online (Sandbox Code Playgroud)

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

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:
Run Code Online (Sandbox Code Playgroud)

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)

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

小智 7

尝试这个 :-

    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);
});
Run Code Online (Sandbox Code Playgroud)

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