개발관련/other

node.js에서 HTTP POST 요청하는 방법

Rateye 2021. 10. 6. 10:55
728x90
반응형
질문 : node.js에서 HTTP POST 요청은 어떻게 이루어 집니까?

node.js에서 데이터와 함께 아웃 바운드 HTTP POST 요청을 만들려면 어떻게해야합니까?

답변

다음은 node.js를 사용하여 Google Compiler API에 POST 요청을하는 예입니다.

// We need this to build our post string
var querystring = require('querystring');
var http = require('http');
var fs = require('fs');

function PostCode(codestring) {
  // Build the post string from an object
  var post_data = querystring.stringify({
      'compilation_level' : 'ADVANCED_OPTIMIZATIONS',
      'output_format': 'json',
      'output_info': 'compiled_code',
        'warning_level' : 'QUIET',
        'js_code' : codestring
  });

  // An object of options to indicate where to post to
  var post_options = {
      host: 'closure-compiler.appspot.com',
      port: '80',
      path: '/compile',
      method: 'POST',
      headers: {
          'Content-Type': 'application/x-www-form-urlencoded',
          'Content-Length': Buffer.byteLength(post_data)
      }
  };

  // Set up the request
  var post_req = http.request(post_options, function(res) {
      res.setEncoding('utf8');
      res.on('data', function (chunk) {
          console.log('Response: ' + chunk);
      });
  });

  // post the data
  post_req.write(post_data);
  post_req.end();

}

// This is an async file read
fs.readFile('LinkedList.js', 'utf-8', function (err, data) {
  if (err) {
    // If this were just a small part of the application, you would
    // want to handle this differently, maybe throwing an exception
    // for the caller to handle. Since the file is absolutely essential
    // to the program's functionality, we're going to exit with a fatal
    // error instead.
    console.log("FATAL An error occurred trying to read in the file: " + err);
    process.exit(-2);
  }
  // Make sure there's data before we post it
  if(data) {
    PostCode(data);
  }
  else {
    console.log("No data to post");
    process.exit(-1);
  }
});

하드 코딩 된 문자열 대신 파일에서 데이터를 게시하는 방법을 보여주기 위해 코드를 업데이트했습니다. fs.readFile 명령을 사용하여 성공적인 읽기 후 실제 코드를 게시합니다. 오류가 있으면 발생하고 데이터가 없으면 프로세스는 실패를 나타내는 음수 값으로 종료됩니다.

출처 : https://stackoverflow.com/questions/6158933/how-is-an-http-post-request-made-in-node-js
728x90
반응형