Nodejs发送请求

532 阅读1分钟

Node.js 发送请求 - 原生方式

在 Node.js 中,可以使用原生的方式发送 HTTP 请求。通过使用内置的 http 模块来实现

  • 模块导入

const http = require('http');
  • 发送 GET 请求

构建请求选项

首先构建请求的选项对象。这个对象包含有关请求的详细信息,例如请求的 URL、请求的方法等。

const options = {
  hostname: 'api.example.com',  // 请求的主机名
  port: 80,                     // 请求的端口号
  path: '/users',                // 请求的路径
  method: 'GET'                  // 请求的方法
};
  • 发送请求

有了请求选项对象后,可以使用 http.request() 方法发送请求。这个方法返回一个 http.ClientRequest 实例,可以通过该实例与服务器进行通信。
const req = http.request(options, (res) => {
  console.log(`状态码:${res.statusCode}`);
  console.log('响应头:', res.headers);

  res.on('data', (data) => {
    console.log('响应数据:', data.toString());
  });
});

req.on('error', (error) => {
  console.error('请求错误:', error);
});

req.end();
上述代码中,我们定义了一个回调函数来处理服务器的响应。在回调函数中,我们可以访问响应的状态码、响应头和响应数据。此外,我们还可以监听 error 事件以处理请求过程中可能发生的错误。
  • 发送 POST 请求

构建请求选项

发送 POST 请求与发送 GET 请求类似,唯一的区别在于请求方法为 POST,同时我们还需要提供请求的 body 数据。

const postData = JSON.stringify({
  username: 'example_user',
  password: 'example_password'
});

const options = {
  hostname: 'api.example.com',
  port: 80,
  path: '/login',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': postData.length
  }
};
  • 发送请求

发送 POST 请求的过程与发送 GET 请求类似,我们需要调用 http.request() 方法,并将请求选项对象作为参数传入。然后,我们可以通过 req.write() 方法发送请求的 body 数据。
const req = http.request(options, (res) => {
  console.log(`状态码:${res.statusCode}`);
  console.log('响应头:', res.headers);

  res.on('data', (data) => {
    console.log('响应数据:', data.toString());
  });
});

req.on('error', (error) => {
  console.error('请求错误:', error);
});

req.write(postData);
req.end();
本文介绍了在 Node.js 中使用原生方式发送 HTTP 请求的步骤