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

4 回复

要在 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}`);
});

解释

  1. 定义URL:首先定义你想要请求的 URL,这里是 'http://example.com'

  2. 发起GET请求:使用 http.get 方法发起 GET 请求。第一个参数就是你之前定义的 URL。

  3. 回调函数:在 http.get 的回调函数中,可以通过变量 url 直接访问到请求的 URL。

  4. 处理响应:在回调函数中,你可以通过 res 参数访问响应对象,从而获取响应的状态码、响应头以及响应体。

  5. 错误处理:通过 .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.geturl 参数来获取请求的 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

回到顶部