How to set Content-Length when sending POST request in NodeJS?

后端 未结 4 723
甜味超标
甜味超标 2021-02-08 13:17
var https = require(\'https\');  

var p = \'/api/username/FA/AA?ZOHO_ACTION=EXPORT&ZOHO_OUTPUT_FORMAT=JSON&ZOHO_ERROR_FORMAT=JSON&ZOHO_API_KEY=dummy1234&         


        
4条回答
  •  执笔经年
    2021-02-08 14:01

    i think you're missing two things. Assuming p is both your endpoint and your url-encoded payload.

    You could split your p variable into the both api path, and the post_data payload you need to write before ending the request.

    var p = 'ZOHO_ACTION=EXPORT&ZOHO_OUTPUT_FORMAT=JSON&ZOHO_ERROR_FORMAT=JSON&ZOHO_API_KEY=dummy1234&ticket=dummy9876&ZOHO_API_VERSION=1.0';
    
    var https = require('https');  
    var options = {  
      host: 'reportsapi.zoho.com',  
      port: 443,  
      path: '/api/username/FA/AA',  
      method: 'POST',
      headers: {
          'Content-Type': 'application/x-www-form-urlencoded',
          'Content-Length': Buffer.byteLength(p)
      } 
    }
    var req = https.request(options, function(res) {  
      console.log("statusCode: ", res.statusCode);  
      console.log("headers: ", res.headers);  
      res.on('data', function(d) {  
        process.stdout.write(d);  
      });  
    });
    req.write(p);  
    req.end();  
    

    Hope it helps!!

提交回复
热议问题