如何从nodejs请求模块获取重定向的URL?

我正在尝试通过使用nodejs request模块将我重定向到另一个页面的URL

梳理文档后,我找不到任何可以让我在重定向后检索网址的内容。

我的代码如下:

var request = require("request"),

options = {

uri: 'http://www.someredirect.com/somepage.asp',

timeout: 2000,

followAllRedirects: true

};

request( options, function(error, response, body) {

console.log( response );

});

回答:

有两种非常简单的方法来获取重定向链中的最后一个URL。

var r = request(url, function (e, response) {

r.uri

response.request.uri

})

uri是一个对象。uri.href包含带有查询参数的URL作为字符串。

该代码来自请求创建者对github问题的评论:https

:

//github.com/mikeal/request/pull/220#issuecomment-5012579

例:

var request = require('request');

var r = request.get('http://google.com?q=foo', function (err, res, body) {

console.log(r.uri.href);

console.log(res.request.uri.href);

// Mikael doesn't mention getting the uri using 'this' so maybe it's best to avoid it

// please add a comment if you know why this might be bad

console.log(this.uri.href);

});

这将打印http://www.google.com/?q=foo

3次(请注意,我们从一个不带www的地址重定向到一个带有www的地址)。

以上是 如何从nodejs请求模块获取重定向的URL? 的全部内容, 来源链接: utcz.com/qa/427066.html

回到顶部