how to post XML data in node.js http.request how to post XML data in node.js http.request express express

how to post XML data in node.js http.request


Actually the link given by Andrey Sidorov helped to get it working.This works.

var body = '<?xml version="1.0" encoding="utf-8"?>' +           '<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">'+            '<soap12:Body>......</soap12:Body></soap12:Envelope>';var postRequest = {    host: "service.x.yyy.xa.asmx",    path: "/a.asmx",    port: 80,    method: "POST",    headers: {        'Cookie': "cookie",        'Content-Type': 'text/xml',        'Content-Length': Buffer.byteLength(body)    }};var buffer = "";var req = http.request( postRequest, function( res )    {   console.log( res.statusCode );   var buffer = "";   res.on( "data", function( data ) { buffer = buffer + data; } );   res.on( "end", function( data ) { console.log( buffer ); } );});req.on('error', function(e) {    console.log('problem with request: ' + e.message);});req.write( body );req.end();


http.request returns ClientRequest object which is also a writable stream.Instead of .end() do end(xmlbody) or .write(xmlbody).end()


var request = require("request");request.post({    rejectUnauthorized: false,    url: 'URL',    method: "POST",    headers: {        'Content-Type': 'application/xml',    },    body: '<XML>'}, function (error, response, body) {    if (error) {        // Handle error    } else {        // Handle Response and body    }});