相关疑难解决方法(0)

在setcookie()之后立即访问$ _COOKIE

我试图在PHP中$_COOKIE调用setcookie()函数后立即访问cookie的值(使用).当我这样做时,$_COOKIE['uname']没有设定.为什么?

但是,请注意,$_COOKIE['uname']在下次执行脚本时(例如在页面刷新之后)按预期设置.

setcookie('uname', $uname, time() + 60 * 30);
echo "Cookie value: " . $_COOKIE['uname'];
Run Code Online (Sandbox Code Playgroud)

php cookies

69
推荐指数
4
解决办法
4万
查看次数

HttpURLConnection(java.net.CookieManager)和WebView(android.webkit.CookieManager)之间的cookie的双向同步

不幸的是,Android上有很多cookie管理器.Cookie HttpURLConnection由以下人员维护,java.net.CookieManagerCookie WebView由以下人员维护android.webkit.CookieManager.这些cookie存储库是独立的,需要手动同步.

我的应用程序使用HttpURLConnections和显示WebViews(它是本机HTML混合).当然,我希望两者共享所有cookie - 所以我将在整个过程中进行透明会话.

进一步来说:

  1. 在HttpURLConnection中设置/更改cookie时,我希望WebViews也能看到此更改.
  2. 在WebView中设置/更改cookie时,我希望下一个HttpURLConnections也能看到此更改.

简单地说 - 我正在寻找双向同步.或者甚至更好,让它们都使用相同的cookie存储库.您可以假设它们同时处于活动状态(如在不同的选项卡上).

问题:

  1. 有没有办法让两个使用相同的cookie存储库?

  2. 如果没有,建议的做法是手动同步?什么时候我应该同步,怎么样?

相关问题:这个问题解决了类似的问题,但只实现了单向同步(HttpURLConnection - > WebView).

我最好的想法:我真的想避免手动同步,所以我试着想如何让两者都使用相同的存储库.也许我可以创建自己的扩展核心处理程序java.net.CookieManager.我将使用它将其设置为核心cookie处理程序java.net.CookieHandler.setDefault().它的实现将是android.webkit.CookieManager处理程序实例的代理(对于我只是访问webkit管理器的每个函数).

cookies android http httpurlconnection android-webview

34
推荐指数
1
解决办法
1万
查看次数

如果HttpURLConnection与CookieManager自动处理会话cookie?

我有一个Java应用程序(JDK 1.7.0_13),并使用java.net.HttpURLConnection连接到一些基于servlet的服务进行会话管理.我试图弄清楚如何使用java.net.CookieManager来跟踪会话cookie.阅读文档我得到的印象是,使用CookieHandler.setDefault(新的CookieManager())安装CookieManager会导致cookie管理自动发生.但是,对同一URL的多个请求似乎不保留cookie.我是否必须手动从响应中提取cookie并在我自己的请求中重新发送它们,或者CookieManager是否会自动为我执行此操作?如果CookieManager没有,那么它添加了什么值?

为了测试一些东西,我有一个servlet,每当我的浏览器访问一个URL时,它就会成功递增一个计数器.这可以在Safari,FireFox和Chrome中正常工作......但是,我无法从独立的Java应用程序中使用它.

这是一个非常简单的测试程序,用于说明我希望简单的工作.它在开始时安装CookieManager,然后在控制台输入URL时重复调用fetch(String urlString)方法.

package com.brilliant.experimental;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpFetcher {  
    public static void fetch(String urlString) {
        try {
            URL url = new URL(urlString);
            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
            InputStream in = conn.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            int status = conn.getResponseCode();
            System.out.println("Status = " + status);
            String key;
            System.out.println("Headers-------start-----");
            for (int i = 1; (key = conn.getHeaderFieldKey(i)) != null; i++) {
                System.out.println(key + …
Run Code Online (Sandbox Code Playgroud)

java cookies httpurlconnection cookiemanager

27
推荐指数
1
解决办法
4万
查看次数