AI Workshop: learn to build apps with AI →
HTTP and Networking: Making HTTP requests with Node

Join the AI Workshop and learn to build real-world apps with AI. A hands-on, practical program to level up your skills.


I use the term HTTP, but HTTPS is what should be used everywhere, therefore these examples use HTTPS instead of HTTP.

Perform a GET Request

const https = require('https')
const options = {
  hostname: 'flaviocopes.com',
  port: 443,
  path: '/todos',
  method: 'GET'
}

const req = https.request(options, (res) => {
  console.log(`statusCode: ${res.statusCode}`)

  res.on('data', (d) => {
    process.stdout.write(d)
  })
})

req.on('error', (error) => {
  console.error(error)
})

req.end()

Perform a POST Request

const https = require('https')

const data = JSON.stringify({
  todo: 'Buy the milk'
})

const options = {
  hostname: 'flaviocopes.com',
  port: 443,
  path: '/todos',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length
  }
}

const req = https.request(options, (res) => {
  console.log(`statusCode: ${res.statusCode}`)

  res.on('data', (d) => {
    process.stdout.write(d)
  })
})

req.on('error', (error) => {
  console.error(error)
})

req.write(data)
req.end()

PUT and DELETE

PUT and DELETE requests use the same POST request format, and just change the options.method value.

Lessons in this unit:

0: Introduction
1: Run a web server from any folder
2: HTTP requests in Node using Axios
3: Make an HTTP POST request using Node
4: ▶︎ Making HTTP requests with Node
5: Get HTTP request body data using Node
6: Serve an HTML page using Node.js
7: Using WebSockets with Node.js