假设我在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;
}

这就是我在我的项目中使用的方法.让我知道.如果这对你有帮助,请支持并接受我的回答.谢谢:)

Flutter相关问答推荐

Box约束强制无限高:SizedBox. Expand()

在Flutter TextField中计算子字符串位置

Android Studio中的Ffltter&;Couchbase:进程C:/Program Files/Git/bin/bash以非零退出值35结束

如何防止onTapCancel由子元素触发?

Flutter :在后台实现振动

GitHub Actions工作流secret中的特殊字符未被保留

我怎样才能在Ffltter中显示html布局链接?

如何使DropDownMenu宽度等于TextFormfield?

Riverpod Provider.family 和 HookConsumerWidget 不刷新 UI

在 Flutter 中滑动关闭 PageView.builder 时出现问题

Supabase Auth:重定向到 Google.com 而不是我的应用程序

Flutter:我应该使用哪种应用内购买服务?

无状态和有状态小部件,我可以同时使用吗?

如果其他Provider 的帐户已存在,如何阻止用户登录?

如何使Flutter 屏幕无法关闭?

使 Row 中的元素保持在中间的空间,如果它们太大,则将它们包裹起来

reactive_flutter_BLE - 应用找到设备但无法连接(并读取 BLE 数据)

statefulWidget 无法进行所需更改的问题

Flutter - 检测手指何时进入容器

如何在Flutter 的 initState 中初始化 Firestore 查询