2012-12-24 9 views
14

मैं http.request का उपयोग करके Node.js के माध्यम से किसी वेब सेवा के लिए xml अनुरोध सबमिट करने का प्रयास कर रहा हूं।node.js में XML डेटा को पोस्ट करने के लिए http.request

मेरा कोड यहां है। मेरी समस्या यह है कि data=1 के बजाय मैं सेवा में एक्सएमएल पोस्ट करना चाहता हूं।

http.request({ 
    host: 'service.x.yyy.x', 
    port: 80, 
    path: "/a.asmx?data=1", 
    method: 'POST' 
}, function(resp) { 
    console.log(resp.statusCode); 
    if(resp.statusCode) { 
     resp.on('data', function (chunk) { 
      console.log(chunk); 
      str += chunk;     
     }); 
     resp.on('end', function (chunk) {       
      console.log(str);    
     });     
    } 
}).end(); 

ऐसा करने के लिए हो?

उत्तर

4

http.requestClientRequest ऑब्जेक्ट देता है जो एक लिखने योग्य धारा भी है। .end() की इसके बजाय end(xmlbody) या .write(xmlbody).end()

20

वास्तव में कड़ी Andrey Sidorov द्वारा दिए गए यह काम कर रहा करने के लिए मदद की है। यह काम करता है।

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(); 
+0

मैं ऐसा करता हूं लेकिन यह दिखाता है कि "xml 'पैरामीटर भेजने के लिए POST विधि का उपयोग करें"। मैं क्या करूं – vinodh

संबंधित मुद्दे