📅  最后修改于: 2023-12-03 14:52:27.605000             🧑  作者: Mango
在 Node.js 中,我们可以轻松地发出 HTTP 请求并处理响应。这个功能非常有用,因为它可以让我们从其他网站获取数据或与 API 交互。
发送 GET 请求是最简单的操作。我们只需要使用 Node.js 的内置 http
模块,调用其中的 get()
方法并传入 URL 地址即可。例如,要获取 Google 的首页,我们可以这样写:
const http = require('http');
http.get('http://www.google.com/', (res) => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', (chunk) => {
console.log(chunk);
});
}).on('error', (err) => {
console.error(err);
});
这里,我们使用了 http.get()
方法,传入 Google 的网址和一个回调函数。当响应开始时,statusCode
属性将被输出,然后每个数据块将被输出到控制台。
要发送 POST 请求,我们需要使用 http.request()
方法并将请求体作为参数传递。例如,向名为 example.com
的 API 发送包含用户名和密码的 JSON 对象:
const http = require('http');
const data = JSON.stringify({
username: 'myusername',
password: 'mypassword'
});
const options = {
hostname: 'example.com',
port: 80,
path: '/api/authenticate',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': data.length
}
};
const req = http.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', (chunk) => {
console.log(chunk);
});
}).on('error', (err) => {
console.error(err);
});
req.write(data);
req.end();
这里我们定义了请求体的数据和请求头,然后用它们创建了 http.request()
对象。我们处理响应和错误的方式与前面的示例相同,只不过这里我们需要使用 req.write()
方法将数据写入请求体,并在结束时调用 req.end()
方法。
我们可以使用 https
模块发送 HTTPS 请求,其实现方式类似于 HTTP 请求。以下是向 Github 发送 HTTPS GET 请求的例子:
const https = require('https');
https.get('https://api.github.com/users/octocat', (res) => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', (chunk) => {
console.log(chunk.toString('utf-8'));
});
}).on('error', (err) => {
console.error(err);
});
这里我们使用 https.get()
方法,并传入正确的 HTTPS URL 地址。其他操作与 HTTP 请求相似。
在 Node.js 中发出 HTTP(S) 请求非常简单,只需使用 http
或 https
模块中的方法即可。具体实现取决于请求的类型和响应的内容,但 Node.js 提供了一系列灵活的 API 和工具,可用于处理 HTTP 请求并使其变得简单。