2016-09-28 10 views
2

Ich habe versucht, Post Anruf auf https://api-mean.herokuapp.com/api/contacts mit folgenden Daten zu senden:Wie sende ich einen http-Post-Anruf vom Node-Server?

{ 
    "name": "Test", 
    "email": "[email protected]", 
    "phone": "989898xxxx" 
} 

aber keine Antwort bekommen. Ich habe es auch mit Postboten versucht es funktioniert gut. Ich habe Antwort im Postboten bekommen.

ich folgende NodeJS Code verwenden:

 var postData = querystring.stringify({ 
      "name": "Test", 
      "email": "[email protected]", 
      "phone": "989898xxxx" 
     }); 

     var options = { 
      hostname: 'https://api-mean.herokuapp.com', 
      path: '/api/contacts', 
      method: 'POST', 
      headers: { 
       'Content-Type': 'application/json' 
      } 
     }; 

     var req = http.request(options, function (res) { 
      var output = ''; 
      res.on('data', function (chunk) { 
       output += chunk; 
      }); 

      res.on('end', function() { 
       var obj = JSON.parse(output.trim()); 
       console.log('working = ', obj); 
       resolve(obj); 
      }); 
     }); 

     req.on('error', function (e) { 
      console.error(e); 
     }); 

     req.write(postData); 
     req.end(); 

bin ich etwas fehlt?

Wie http-Post-Aufruf von Node-Server senden?

Antwort

0

Für HTTP-POST Anruf von NodeJS senden, müssen Sie möglicherweise die request module

Beispiel verwenden:

var request = require('request'); 

request({ 
    url: "some site", 
    method: "POST", 
    headers: { 
     // header info - in case of authentication enabled 
    }, 
    json:{ 
     // body goes here 
    }, function(err, res, body){ 
     if(!err){ 
      // do your thing 
     }else{ 
      // handle error 
     } 
    }); 
4

Ich empfehle Ihnen, verwenden Sie das request Modul, um die Dinge einfacher zu machen.

var request=require('request'); 

    var json = { 
    "name": "Test", 
    "email": "[email protected]", 
    "phone": "989898xxxx" 
    }; 

    var options = { 
    url: 'https://api-mean.herokuapp.com/api/contacts', 
    method: 'POST', 
    headers: { 
     'Content-Type': 'application/json' 
    }, 
    json: json 
    }; 

    request(options, function(err, res, body) { 
    if (res && (res.statusCode === 200 || res.statusCode === 201)) { 
     console.log(body); 
    } 
    }); 
+0

Vielen Dank für die Antwort. arbeiten, aber immer Fehler: ** [Fehler: Ungültige Protokoll: null] ** –

+0

gibt es einige Proxy-Ausgabe – abdulbarik

+0

http://stackoverflow.com/questions/34964935/node-js-request-module-giving-error -for-http-call-error-invalid-protocol-null – abdulbarik

Verwandte Themen