Bài 14: Tạo yêu cầu HTTP và HTTPS trong Node.js với module http và https
Trong Node.js, chúng ta có thể tạo các yêu cầu HTTP đến các máy chủ khác bằng cách sử dụng module http
hoặc https
. Việc này cho phép chúng ta tương tác với các API, truy cập các trang web và thực hiện các yêu cầu khác đến các máy chủ khác.
Trong bài viết này, chúng ta sẽ tìm hiểu cách tạo yêu cầu HTTP trong Node.js bằng cách sử dụng module http
.
Sử dụng module http
Để tạo yêu cầu HTTP trong Node.js, chúng ta có thể sử dụng module http
. Đầu tiên, chúng ta cần tạo một đối tượng yêu cầu (http.request()
) và sau đó gửi yêu cầu đó bằng cách sử dụng phương thức request.end()
.
Ví dụ:
const http = require('http');
const options = {
hostname: 'www.example.com',
port: 80,
path: '/path',
method: 'GET'
};
const req = http.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', (data) => {
console.log(data.toString());
});
});
req.on('error', (error) => {
console.error(error);
});
req.end();
Trong ví dụ trên, chúng ta đã tạo một đối tượng yêu cầu với các thông tin cần thiết bao gồm địa chỉ hostname
, port
, path
và method
. Sau đó, chúng ta đã gửi yêu cầu đó bằng cách sử dụng phương thức req.end()
. Khi yêu cầu được hoàn thành, chúng ta đã nhận được phản hồi từ máy chủ và đọc dữ liệu phản hồi trong phương thức res.on('data', ...)
.
Tạo yêu cầu POST
Để tạo một yêu cầu POST, chúng ta cần thay đổi phương thức yêu cầu thành POST
và gửi dữ liệu trong phần thân yêu cầu bằng cách sử dụng phương thức req.write()
.
Ví dụ:
const http = require('http');
const options = {
hostname: 'www.example.com',
port: 80,
path: '/path',
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
};
const req = http.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', (data) => {
console.log(data.toString());
});
});
req.on('error', (error) => {
console.error(error);
});
const postData = JSON.stringify({
'message': 'Hello, world!'
});
req.write(postData);
req.end();
Trong ví dụ trên, chúng ta đã tạo một yêu cầu POST bằng cách thay đổi phương thức yêu cầu thành POST
. Chúng ta cũng đã đặt tiêu đề Content-Type
là application/json
để cho máy chủ biết rằng chúng ta đang gửi dữ liệu dưới dạng JSON. Sau đó, chúng ta đã gửi dữ liệu bằng cách sử dụng phương thức req.write()
và kết thúc yêu cầu bằng cách sử dụng phương thức req.end()
.
Tạo yêu cầu HTTPS
Nếu chúng ta cần tạo yêu cầu HTTPS thay vì HTTP, chúng ta có thể sử dụng module https
thay vì http
.
Ví dụ:
const https = require('https');
const options = {
hostname: 'www.example.com',
port: 443,
path: '/path',
method: 'GET'
};
const req = https.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', (data) => {
console.log(data.toString());
});
});
req.on('error', (error) => {
console.error(error);
});
req.end();
Trong ví dụ trên, chúng ta đã sử dụng module https
thay vì http
. Chúng ta đã sử dụng cùng một cách thức để tạo yêu cầu HTTPS như tạo yêu cầu HTTP.
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách tạo yêu cầu HTTP và HTTPS trong Node.js bằng cách sử dụng module http
hoặc https
. Chúng ta có thể tạo các yêu cầu GET hoặc POST và gửi dữ liệu trong yêu cầu bằng cách sử dụng phương thức req.write()
. Việc này cho phép chúng ta tương tác với các API và truy cập các dịch vụ web khác trong Node.js.