node.js - NodeJs: How to make consecutive http requests on the same connection -
i need connect custom xml service have following requirements:
the first http request service must made login endpoint, header field "name" containing user want connect. in response "digest" header field containing challenge must use compute value send following requests.
the following requests must made on same connection , sending "digest" header containing computed value based on response.
if fail so, server ends connection error.
i've tried using http agent keepalive=true , maxsockets=1 can't response second request. (if disable agent response request ended server because it's made different connection.
appreciate help... here code:
var http = require('http'); const keepaliveagent = new http.agent({ keepalive: true, maxsockets: 1 }); var docxml = "<?xml version='1.0' encoding='windows-1252'?><document><docitems></docitems></document>"; var loginhash = function(user, password, digest) { result= digest+password+user; return result.tostring(); } var loginoptions = { host: '10.190.22.1', port: 2261, path: '/login', agent: keepaliveagent, headers: { 'name': 'jose' } }; req1 = http.get(loginoptions, function(res1) { procdigest = loginhash('jose', 'rocha', req1.res.headers.digest); console.log('digested: ' + procdigest); var insertoptions = { host: '10.190.22.1', port: 2261, path: '/postsomething', method: 'post', agent: keepaliveagent, headers: { 'digest': procdigest } }; var req2 = http.request(insertoptions, function (res2) { console.log('request2 headers: ' + json.stringify(req2.res.statuscode)); }); req2.on('end', function (){ console.log('request2 headers: ' + req2.res); }); req2.on('error', function(e) { console.log('error: ' + e); }); req2.write(docxml); req2.end(); });
adding res1.resume(); allow response first request drained/discarded second request can made on same socket.
Comments
Post a Comment