WebView 不接受某些 cookie

2024-01-31

我正在 Webview 中加载一个网站,该网站使用一些 cookie 来存储会话。我写了以下几行来接受cookie

CookieSyncManager.createInstance(this);
CookieSyncManager.getInstance().startSync();
CookieManager.getInstance().setAcceptCookie(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    CookieManager.setAcceptFileSchemeCookies(true);
    CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
}
webView.loadUrl("https://www.irctc.co.in/nget/train-search");

在某一阶段(从支付网关付款后),shouldOverrideUrlLoading方法被调用,之后它应该登陆到交易成功页面,但它继续进入登录页面。这是我的方法:

@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    Log.d(TAG, "The URL is loaded in webview itself");
    return false;
}

Using Chrome Developer Tools, I can see following cookies for website Cookies used by website

当我调用方法时CookieManager.getInstance().getCookie(url)我可以看到饼干杰西森ID and SLB_Cookie存在于 webview 中,但不确定本地存储曲奇饼。另外,如果我删除本地存储Chrome 中的 cookie,我得到完全相同的页面(登录页面),而不是像 WebView 这样的交易成功页面。所以我认为,如果我以任何方式检查本地存储 cookie 是否存在于 webview 中,如果不存在,那么如果我添加它,我的工作就完成了。但我无法完成这两项任务。


如果您想将登录用户数据传递到 Webview 中的 cookie,请这样做 前几天我必须将登录对象传递到特定的 URL 如下。

            WebSettings settings = webViewRoi.getSettings();
            settings.setDomStorageEnabled(true);
            settings.setJavaScriptEnabled(true);
            settings.setJavaScriptCanOpenWindowsAutomatically(false);
            settings.setAppCacheEnabled(true);
            settings.setAllowUniversalAccessFromFileURLs(true);
            settings.setAllowFileAccessFromFileURLs(true);

            Gson gson = new GsonBuilder().disableHtmlEscaping().create();


            FormsDTO formsDTO = new FormsDTO();
            FormsDTOProfile dtoProfile = new FormsDTOProfile(LoginActivity.loginInfoDTO.getProfile());
            formsDTO.setProfile(dtoProfile);
            formsDTO.setAuthorized(true);
            formsDTO.setToken(LoginActivity.loginInfoDTO.getToken());

            String out123 = gson.toJson(formsDTO);

            String auth2 = URLEncoder.encode(out123, "UTF-8");

            String z = "userInfo=" + auth2;  // here userinfo is the key of cookie
            CookieManager cookieManager = CookieManager.getInstance();
            cookieManager.setAcceptCookie(true);


            cookieManager.setCookie(url, z);
            webViewRoi.setWebChromeClient(new WebChromeClient());
            webViewRoi.loadUrl(url);

因此,如果您知道 cookie 的键名,那么您可以通过 cookie 传递您的登录对象。希望对你有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WebView 不接受某些 cookie 的相关文章

  • Android webview 滚动不起作用

    我正在尝试在网络视图中向下滚动到页面底部 我正在使用谷歌在其教程中提供的网络视图示例 我正在使用这行代码来尝试滚动 但它不起作用 mWebView pageDown true 关于如何使其以编程方式滚动有什么建议吗 谢谢 public cl
  • Twitter 登录说明

    我想在 Android 中创建一个 Twitter 应用程序 为此 我想创建一个登录页面并登录到 Twitter 为此 我们需要消费者密钥和消费者密钥 这是什么意思 要创建此登录页面 除了 Twitter 帐户之外 我们还需要其他任何东西吗
  • Android:使用 OAuth 访问 google 任务时出现问题

    由于 google 任务没有公共 api 我想编写解决方法并像浏览器一样请求数据 然后解析结果以进一步显示 为了访问数据 我使用 google 实现了 OAuth 身份验证来访问此 url https mail google com htt
  • 在android中通过BLE传输图像

    我使用以下代码传输 1 MB 的图像 如果在每个数据包之间实现线程延迟 则图像将成功传输 如果未设置线程延迟 则所有数据包均从BluetoothGattServer 发送 但BluetoothGattCallback 不会接收所有数据包 任
  • 如何使用Android opencv使图像的白色部分透明

    我无法链接超过 2 个网址 因此我将我的照片发布到此博客 请在这里查看我的问题 http blog naver com mail1001 220650041897 http blog naver com mail1001 220650041
  • Android 如何更改 OnTouchListener 上的按钮背景

    你好 我在 xml 中有一个按钮 我正在使用OnTouchListener在我的活动中获得button按下并释放 但问题是 当我按下按钮时背景颜色没有改变 当我延长可能的活动时OnClickListener背景正在改变 任何人都可以告诉我的
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 如何解决 Firebase AuthUi 中无法找到显式活动?

    使用 firebase UI 时 我无法找到显式活动类 com firebase ui auth KickoffActivity protected void onCreate Bundle savedInstanceState super
  • 如何为发布而不是调试创建密钥库?扑

    我按照使用此网站部署 flutter 的步骤进行操作https flutter io android release https flutter io android release 当我运行 flutter build apk 时出现此错
  • 出现错误错误:res/menu/mainMenu.xml:文件名无效:必须仅包含[a-z0-9_。]

    我是安卓新手 刚刚开始使用 我在 res 文件夹中创建了一个文件 menu mainMenu xml 但我得到了错误 Error res menu mainMenu xml invalid file name must contain on
  • android EditText 输入类型用于 StreetNumber 字段

    我试图在地址对话框的 streetNumber 字段中选择正确的 inputType 我想先显示数字键盘 然后让用户输入字母字符 对于一些非常特殊的情况 更接近这个的是 inputType datetime 但这不允许输入字母字符 那么如何
  • 如何在手机缓存中保存用户名和密码

    我有一个用户登录应用程序 它需要用户的电子邮件和密码 我想将电子邮件和密码保存在手机缓存中 以便用户不必再次输入 有什么办法可以将数据保存在Android缓存中吗 我认为你需要使用SharedPreference用于在设备中使用应用程序时保
  • Camera.open()返回NULL Android开发

    我正在按照构建相机应用程序的教程进行操作http developer android com tools device html http developer android com tools device html我对 Camera o
  • glTexImage2D: 之前出错:( 0x506 内部 0x1908 格式 0x1908 类型 0x1401

    当使用 Android Studio 运行模拟器时 我在模拟器屏幕上看不到任何内容 一切都是黑色的 我得到以下事件日志 模拟器 glTexImage2D 出错了 0x506 内部 0x1908 格式 0x1908 类型 0x1401 我已经
  • 使用 gradlew assembleRelease 从 React Native 创建发布 apk 时出现错误

    我想发布 apk 但我收到错误 文件已存在 mkdir D mobile 它在 d 驱动器中生成名为 mobile 的文件 删除文件后 再次执行 gradlew assembleRelease 创建该文件并抛出错误 任务 app bundl
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • 如何修改 Skobbler 注释而不重新添加它

    我必须修改 SKAnnotation 的图像 注释生成器代码 private SKAnnotation getAnnotationFromView int id int minZoomLvl View view SKAnnotation a
  • 在 KitKat 4.4.2 中获取 SDard 路径和大小

    我在 Google Play 上有一个设备信息应用程序 在该应用程序中我有存储信息 我知道 Android 4 4 在访问外部 SD 卡方面发生了一些变化 内部似乎没有给我带来问题 我的问题是 如何可靠地获取 KitKat 上 SD 卡的大
  • javafx android 中的文本字段和组合框问题

    我在简单的 javafx android 应用程序中遇到问题 问题是我使用 gradle javafxmobile plugin 在 netbeans ide 中构建了非常简单的应用程序 其中包含一些文本字段和组合框 我在 android

随机推荐

  • C# 表单激活和停用事件

    我有两个表单 主表单和子表单 当 mainForm 失去焦点时 我希望 subForm 消失 然后在 mainForm 重新获得焦点时重新出现 我在 mainForm 上使用 Activated 和 Deactivate 事件来跟踪 mai
  • h2内存表,远程连接

    我在创建内存表 使用 H2 数据库以及在创建和运行该表的 JVM 之外访问它时遇到问题 该文档将 url 构造为jdbc h2 tcp
  • 子模块中的 RouteReuseStrategy

    这是我的延迟加载子模块 NgModule imports CommonModule RouterModule forChild acnpRoutes declarations providers provide RouteReuseStra
  • 使用引号作为键的 Bash hashmap

    在 Bash 中 我想取消设置哈希映射的条目 但我失败了 代码如下 declare A arr arr a b 3 echo arr output a b key a b unset arr key error bash unset arr
  • 存储过程中的返回计数

    我编写了一个存储过程来返回计数 但我得到了一个空值 谁能告诉我我的存储过程中的问题出在哪里 set ANSI NULLS ON set QUOTED IDENTIFIER ON go ALTER PROCEDURE dbo Validate
  • 如何在没有安装服务器的情况下设置 MySQL Workbench 的客户端配置?

    假设我在没有服务器的 Windows 7 上安装了 MySQL Workbench 并且正在连接到远程服务器 如何为工作台设置客户端配置 如 my ini 中的 client 部分 或者也许我以错误的方式获取它并且客户端从它连接到的服务器加
  • Java - Spring Ws - 在 XSD 文件中加载相对包含 (Tomcat 8)

    我创建了一个 Spring Web 服务 它使用以下代码从 XSD 文件集合创建动态 WSDL Resource schema new ClassPathResource schema service XCPD SupportMateria
  • Typescript 中的泛型类型返回

    我有一个 Interface find 其中包含方法 cal 类a1和a2实现了该接口 a1 返回数字 a2 返回字符串 我如何定义一个接口来解决我的问题 下面是所提到内容的片段 interface Ifind cal string cla
  • 用于 Docker 的部署 Rails 应用

    阅读了很多资源 但从部署的角度仍然对 Docker 感到困惑 尝试找出 Docker 环境下 Rails 应用程序的最佳实践 特别感兴趣如何解决以下问题 1 从先前部署的容器访问日志 可以停止 销毁该容器 Rsyslog 系统日志 2 回滚
  • 如何在多项选择的表单服务中分配Go_To_Page?

    刚刚开始在 Google Apps 脚本中使用表单服务 需要根据给出的答案引导表单将用户带到特定页面 这是我当前的代码 form addMultipleChoiceItem setTitle What would you like to d
  • JQuery - 获取调用元素 id

    Problem 在自动完成的源函数中 我想获取选择器的 ID 有没有办法可以遍历调用堆栈并得到这个 做JQuery有这个抽象级别吗 Why 我将在页面上有多个自动完成功能 并且每个自动完成功能将在服务器端以不同的方式处理 我必须使用另一个函
  • 仪器中没有出现泄漏,即使我确信它们存在

    我正在检查仪器是否有泄漏 并且我已设置每秒检查一次 但没有出现泄漏 我确信我的应用程序中一定有一些 有什么可以阻止这些出现吗 有没有一种好方法可以创建泄漏 以便我可以测试仪器中是否出现泄漏 Thanks 创建泄漏很容易 id someObj
  • C++17 中的 std::make_shared() 更改

    In cppref http en cppreference com w cpp memory shared ptr make shared 以下情况直到 C 17 才成立 代码如f std shared ptr
  • 有没有类似 CSS 源映射的东西?

    我使用 jQuery 动态地将 CSS 标签添加到页面中 text css appendTo document head 在 Chrome 开发者工具中查看时 所有 CSS 都显示为 localhost 这并不总是有帮助 有没有类似 CSS
  • DataGrid ScrollIntoView - 如何滚动到未显示的第一行?

    我正在尝试向下滚动带有代码的 WPF DataGrid 我用 int itemNum 0 private void Down Click object sender RoutedEventArgs e if itemNum 1 gt dat
  • C++1y 没有从 std::bind 到 std::function 的可行转换

    我正在尝试将转发函数存储到std function 如果我使用std bind 我收到错误消息 例如no viable conversion from 如果我使用 lambda 它编译没问题 这是示例代码 include
  • 输入文本框后台的 jQuery 自动完成

    我有一个 jQuery 文本框自动完成脚本 它使用 PHP 脚本来查询 MySQL 数据库 目前 结果显示在文本框下方 但我希望它看起来就像在文本框中淡出一样 我怎样才能做这样的事情 Google Instant 搜索框就是一个例子 我当前
  • Memcached – GET 和 SET 操作是原子的吗?

    场景如下 一个查询 memcached 缓存的简单网站 批处理作业每 10 15 分钟更新一次相同的缓存 使用该模式是否会出现任何问题 例如缓存未命中 我担心所有可能发生的比赛状况 例如 如果网站对 memcached 中缓存的对象执行 G
  • 以 Scaffold 作为子项的 InheritedWidget 似乎不起作用

    我希望在 Flutter 应用程序的根级别使用 InheritedWidget 以确保经过身份验证的用户的详细信息可供所有子小部件使用 本质上使 Scaffold 成为 IW 的子级 如下所示 override Widget build B
  • WebView 不接受某些 cookie

    我正在 Webview 中加载一个网站 该网站使用一些 cookie 来存储会话 我写了以下几行来接受cookie CookieSyncManager createInstance this CookieSyncManager getIns