Nodejs请教个问题,如何在http.get(url, function(res) {}) 回调中得到请求的URL?
Nodejs请教个问题,如何在http.get(url, function(res) {}) 回调中得到请求的URL?
请教个问题,如何在 http.get(url, function(res) { // 这里如何得到请求的url? }) 回调中得到请求的URL?
打印看了下req和res里面都没有url。。 why? node.js 版本 v0.10.24
要在 http.get
的回调函数中获取请求的 URL,你可以直接使用传入的第一个参数 url
。因为 http.get
方法的第一个参数就是你要请求的 URL。为了更清晰地理解这一点,我将提供一个简单的示例代码来展示如何实现。
示例代码
const http = require('http');
// 定义请求的URL
const url = 'http://example.com';
// 发起GET请求
http.get(url, (res) => {
// 在这里可以获取到请求的URL
console.log(`请求的URL: ${url}`);
// 打印响应状态码
console.log(`状态码: ${res.statusCode}`);
// 打印响应头
console.log(`响应头:`, res.headers);
// 接收数据片段
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
// 数据接收完毕后触发
res.on('end', () => {
console.log(`接收到的数据:`, data);
});
}).on("error", (err) => {
console.log(`错误: ${err.message}`);
});
解释
-
定义URL:首先定义你想要请求的 URL,这里是
'http://example.com'
。 -
发起GET请求:使用
http.get
方法发起 GET 请求。第一个参数就是你之前定义的 URL。 -
回调函数:在
http.get
的回调函数中,可以通过变量url
直接访问到请求的 URL。 -
处理响应:在回调函数中,你可以通过
res
参数访问响应对象,从而获取响应的状态码、响应头以及响应体。 -
错误处理:通过
.on("error", ...)
可以捕获并处理可能发生的错误。
这种方法简单且有效,不需要额外从响应对象中提取 URL。
http.get(url, function(res) {
console.log( url );
})
http.get(url, function(res) {
res.url = url;
console.log(res.url);
})
在 http.get
的回调函数中,你可以通过传递给 http.get
的 url
参数来获取请求的 URL。不过,由于 http.get
方法并没有直接提供一个方法来从响应对象(res
)或请求对象(req
)中获取 URL,你需要将传入的 url
保存在一个变量中并在回调函数中使用它。
这里是一个简单的例子:
const http = require('http');
let requestUrl = 'http://example.com'; // 你的请求URL
http.get(requestUrl, (res) => {
console.log(`请求的 URL 是: ${requestUrl}`);
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log(`接收到的数据: ${data}`);
});
}).on('error', (err) => {
console.error(`请求错误: ${err.message}`);
});
在这个例子中,我们首先定义了一个变量 requestUrl
来存储你要请求的 URL。然后在 http.get
的回调函数内部,你可以通过访问这个变量来获得请求的 URL。这种方式适用于 Node.js 的任何版本,包括你提到的 v0.10.24
。