Node.js 发送请求 - 原生方式
在 Node.js 中,可以使用原生的方式发送 HTTP 请求。通过使用内置的 http 模块来实现
const http = require('http')
构建请求选项
首先构建请求的选项对象。这个对象包含有关请求的详细信息,例如请求的 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 请求与发送 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 请求的步骤