当前位置: 首页 > 面试题库 >

带有Cookie的URLConnection?

元昊苍
2023-03-14
问题内容

我正在尝试制作一个支持cookie的URLConnection。根据文档,我可以使用:

CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);

我无法使此代码正常工作,然后我看到这仅适用于API
9(2.3)。但是,在较旧的模拟器中使用CookieManager不会出现错误,CookieManager存在,但是无法构造。有什么方法可以使此版本适用于早期版本?我试过了:

            cookieManager.setAcceptCookie(true);
            URLConnection con = u.openConnection();

            con.setRequestProperty("Cookie", cookieManager.getInstance().getCookie(url););
            con.setDoOutput(true);
            con.connect();
            String addCookie = con.getHeaderField("Set-Cookie");
            System.out.println(con.getHeaderFields().toString());
            if (addCookie!=null) {
                cookieManager.getInstance().setCookie(url, addCookie);
            }

但这不起作用。


问题答案:

我能够使用Ian Brown的CookieManager类启用Cookie:http ://www.hccp.org/java-net-cookie-how-to.html

我将其重命名为IansCookieManager,设置了一个类变量_CM = new IansCookieManager,现在很简单:

            URLConnection conn = u.openConnection();
            _CM.setCookies(conn);
            conn.connect();
            _CM.storeCookies(conn);
            ...


 类似资料:
  • 今天我在skype上面试了一份PHP开发人员的工作,其中一个问题是关于Cookie和PHP会话。 问题是,如果用户浏览器中禁用Cookies,可以设置和读取、使用PHP会话吗? 我告诉他们不要,因为PHP会话默认取决于设置会话cookie。当PHP会话启动时,新的会话Cookie被设置为默认名称PHPSESSID,并且该Cookie保存该会话id的值,例如:ftu63d8al491s5gatuob

  • 问题内容: 我是新手,由于良好的在线评论,决定尝试一下。我正在尝试使用scrapy登录到一个网站。我已经通过selenium的组合成功登录了,并通过收集所需的selenium饼干并将其添加到机械化中进行了机械化。现在,我正在尝试对selenium和selenium进行类似的处理,但似乎无法使任何事情起作用。我什至无法分辨是否有任何工作。谁能帮帮我吗。我是从下面开始的。我什至不需要用曲奇的方式来传送

  • 问题内容: 在我的应用程序中,我通过使用SharedPreferences将其作为长字符串写出到文件中来保留CookieStore。重新读回此String时,我使用regexps从String解析每个cookie及其属性(名称,值,域,路径,版本,到期日期)。解析这些属性时,我通过为每个解析的cookie创建一个新的BasicClientCookie对象来重建一个CookieStore,然后将每个

  • 我有一个PHP脚本,它成功地返回一些简单的头以及一个set-cookie头,如果在浏览器中直接调用(或由邮递员)。我可以从chrome DevTools上读到这样的响应标题。但是当我用Axios调用它时,set-cookie头就不会显示出来,浏览器中也没有保存cookie。 我尝试了不同的方法,比如在服务器端更改响应头,并在axios中使用“with Credentials:true”,但都不起作

  • 问题内容: 我有一个Java应用程序(JDK 1.7.0_13),正在使用java.net.HttpURLConnection连接到一些进行会话管理的基于servlet的服务。我试图弄清楚如何使用java.net.CookieManager跟踪会话cookie。阅读文档后,我得到的印象是,使用CookieHandler.setDefault(new CookieManager())安装Cookie

  • 我需要发送一个带有websocket握手请求的cookie,以确保负载均衡器将请求路由到特定的后端。这在Firefox、Safari和websocket-sharp中运行良好,但我无法让Chrome发送带有websocket握手请求的cookie。 我在我的负载均衡器(Traefik)中启用了粘性会话,它在Firefox和Safari上用我现有的SockJS代码“刚刚工作”。 第一个请求没有coo