如何从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