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

时间:2015-07-29 14:25:31

标签: xml node.js post http-post

尝试通过节点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);
});

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

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)       at net.js:459:14       at process._tickCallback(node.js:355:11)

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

2 个答案:

答案 0 :(得分:2)

试试这个: -

    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将被同步

答案 1 :(得分:0)

回应是受益的。 这通常在服务器没有响应请求时发生。