假设我在Ffltter应用程序上打开一个网页,然后点击一个链接或将一个链接粘贴到应用程序中,我如何保存网站从那里转到的所有URL,而不是打开页面,而是在后台查看每个URL.最好是将这些URL保存在一个列表中.
这样的事情有可能发生吗?
示例:
www.google.com->;点击第一个结果
这将经历大约4次URL更改,并以的最后第5个URL结束 所需的网页.
我想将所有5个URL存储在一个列表中,而不让用户看到任何URL 网页.
假设我在Ffltter应用程序上打开一个网页,然后点击一个链接或将一个链接粘贴到应用程序中,我如何保存网站从那里转到的所有URL,而不是打开页面,而是在后台查看每个URL.最好是将这些URL保存在一个列表中.
这样的事情有可能发生吗?
示例:
www.google.com->;点击第一个结果
这将经历大约4次URL更改,并以的最后第5个URL结束 所需的网页.
我想将所有5个URL存储在一个列表中,而不让用户看到任何URL 网页.
我可以理解您的问题,您可以简单地使用http包的GET方法向初始URL发出GET请求.判断响应的状态代码.如果它被永久移动了301或找到了302,则响应将包括一个Location标头,该标头指定客户端应该重定向到的新URL,向新URL发出GET请求,并重复该过程.重复此过程,直到到达状态代码不是301已永久移动或找到302的URL,或者直到达到最大重定向次数.
import 'package:http/http.dart' as http;
List<String> getRedirectChain(String url) {
List<String> redirectChain = [url];
while (true) {
http.Response response = await http.get(url); /// <-- make HTTP request
// Check the status code of the response
if (response.statusCode == 301 || response.statusCode == 302) {
String newUrl = response.headers['location'];
redirectChain.add(newUrl);
url = newUrl;
} else {
break;
}
}
return redirectChain;
}
这就是我在我的项目中使用的方法.让我知道.如果这对你有帮助,请支持并接受我的回答.谢谢:)