簡體   English   中英

在node.js中發送具有不同主體的多個http請求

[英]send multiple http requests with different body in nodejs

我想每次使用循環或類似方法發出多個具有不同主體的HTTP請求。 目前,我對單個請求使用以下代碼,效果很好:

var http = require('http');

 var post_req  = null,
     post_data = JSON.stringify(require('./resources/example.json'));



 var post_options = {
     hostname: 'example.lk',
     port    : '80',
     path    : '/example',
     method  : 'POST',
     headers : {
         'Content-Type': 'application/json',
         'Authorization': 'Cucmlp1qdq9CfA'
     }
 };

 post_req = http.request(post_options, function (res) {
     console.log('STATUS: ' + res.statusCode);
     console.log('HEADERS: ' + JSON.stringify(res.headers));
     res.setEncoding('utf8');
     res.on('data', function (chunk) {
         console.log('Response: ', chunk);
     });
 });

 post_req.on('error', function(e) {
     console.log('problem with request: ' + e.message);
 });
 post_req.write(post_data);
 post_req.end();

如何使用此代碼執行多個呼叫?

您可以使用async調用多個`http

var async = require('async');
var http = require('http');

var post_data = [ data1, data2, data2]; //array of data, you want to post

//asynchronously, loop over array of data, you want to push
async.each(post_data, function(data, callback){

  var post_options = {
    hostname: 'example.lk',
    port    : '80',
    path    : '/example',
    method  : 'POST',
    headers : {
        'Content-Type': 'application/json',
        'Authorization': 'Cucmlp1qdq9CfA'
    }
  };

  post_req = http.request(post_options, function (res) {
    console.log('STATUS: ' + res.statusCode);
    console.log('HEADERS: ' + JSON.stringify(res.headers));
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        console.log('Response: ', chunk);
    });
    res.on('end', function () {
        callback();
    });
  });

  post_req.on('error', function(e) {
      console.log('problem with request: ' + e.message);
  });
  post_req.write(data); //posting data
  post_req.end();
}, function(err){
  console.log('All requests done!')
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM