我试图使用请求库来发送一个POST请求,但我不知道如何根据其文档实际设置Cookie。 该脚本用于维基百科,并且需要发送的cookie是这种forms的: enwiki_session=17ab96bd8ffbe8ca58a78657a918558e; path=/; domain=.wikipedia.com; HttpOnly 但是, requests文档快速入门将此作为唯一示例: cookies = dict(cookies_are='working') 我怎样才能使用这个库编码像上面的cookie? 我是否需要使用python的标准cookie库,然后将它与POST请求一起发送?
如何在HTTP协议中传递cookie?
做了一些处理后,我想设置一个cookie值给用户input,然后redirect到一个新的页面。 但是,Cookie没有设置。 如果我注释掉redirect,那么cookie设置成功。 我认为这是某种头部问题。 什么是这种情况最好的解决方法? if($form_submitted) { … setcookie('type_id', $new_type_id, time() + 60*60*24*30); header("Location: $url"); exit; } 请注意,setcookie在任何情况下均返回true ,并且不会收到错误/警告/通知。 编辑:我使用的是Unix / Apache / MySQL / PHP
我是PHP新手,刚刚练习了PHP setcookie()并失败了。 http:// localhost / test / index.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <?php $value = 'something from somewhere'; setcookie("TestCookie", $value); ?> </body> </html> http:// localhost / test / view.php <?php // I plan to view the cookie value via view.php echo $_COOKIE["TestCookie"]; ?> […]
在使用C#.Net(如爬虫)浏览网站页面时,我需要保留相同的会话ID。 我发现了几个方法,一个HTTP嗅探器非常方便,比较我的IE浏览器正在发送(HTTP请求)和从Web服务器(HTTP响应)接收,因为重要的信息是在标题(不显示由浏览器)。 请不要混淆从服务器到浏览器公开的会话ID和服务器代码私有的服务器会话variables(如php)。 WebHeaderCollection headerCollection = new WebHeaderCollection(); using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { /* save headers */ for (int i = 0; i < response.Headers.Count; i++) { headerCollection.Add(response.Headers.AllKeys[i], response.Headers.Get(i)); } /* save cookies */ cookieContainer = new CookieContainer(); foreach (Cookie cookie in response.Cookies) { cookieContainer.Add(cookie); } } 使其他GET或POST请求: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); … /* […]
我试图用JavaScript来设置一个cookie,并用PHP读取其他页面。 我可以通过这样做来写这个cookie document.cookie = cookieName+"="+cookieValue; 我部分工作。 – Cookie被写入,我可以用$_COOKIE[cookieName]读取它,但只能在同一个网页上阅读。 这真的不是很有用。 我需要在另一个页面阅读。 我通常在asp.net和c#中开发,所以我很擅长php。 我做错了什么? 感谢您的时间! EDIT1:两个页面在同一个域中。 site.com/index.php – > site.com/index2.php 编辑2:cookie被设置在一个页面通过: function SetCookie(cookieName,cookieValue,nDays) { var today = new Date(); var expire = new Date(); if (nDays==null || nDays==0) nDays=1; expire.setTime(today.getTime() + 3600000*24*nDays); document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString(); } 在另一个页面,它不能被访问,但在同一页面,它可以… 编辑3:我试图设置域,并添加path=<?php echo $_SERVER['HTTP_HOST']; ?> path=<?php echo $_SERVER['HTTP_HOST']; ?>的JavaScript代码…仍然没有.. […]
对于我的身份validation过程,我使用py-bcrypt在用户login时将创build一个唯一的标记,并将其放入用于身份validation的cookie中。 所以我会从服务器发送这样的东西: Set-Cookie: token=$2a$12$T94df7ArHkpkX7RGYndcq.fKU.oRlkVLOkCBNrMilaSWnTcWtCfJC; path=/; 适用于所有浏览器。 然后要删除一个cookie,我发送一个类似的cookie,并在1970年1月1日设置expires字段 Set-Cookie: token=$2a$12$T94df7ArHkpkX7RGYndcq.fKU.oRlkVLOkCBNrMilaSWnTcWtCfJC; path=/; expires=Thu, Jan 01 1970 00:00:00 UTC; 这在Firefox上运行正常,但不会删除IE或Safari上的cookie。 那么删除一个cookie的最好方法是什么(最好不用JavaScript)? 过去的设置方法看起来很庞大。 而且为什么这个工作在FF而不是在IE或Safari?
我似乎无法find任何方式在JavaFX中使用WebEngine / WebView以编程方式设置cookie。 API并没有给出任何有关如何获得类似HttpRequest的对象来修改头文件(这是我在应用程序中使用的XML-RPC)或任何types的Cookiepipe理器。 这个页面上没有任何问题似乎涉及到这个问题 – 有这个,但它只是禁用cookies时,在小程序来修复一个错误 ,我的应用程序在桌面上顺便说一句。 唯一的办法,我形象我可以这样做是通过请求第一页(这需要一个会话ID加载正确的cookie),获得“访问被拒绝”式的消息,执行一些JavaScript的页面上下文中设置cookie和然后清爽。 但是这个解决scheme将会是一个糟糕的用户体验。 如何使用WebEngine设置cookie? 更新:从上面链接的问题,我试着挖掘一些使用CookieManager和相关的API的例子。 我发现这个代码 ,然后我试图将其结合到我的应用程序,奇怪的结果; MyCookieStore cookie_store = new MyCookieStore(); CookieManager cookie_manager = new CookieManager(cookie_store, new MyCookiePolicy()); CookieHandler.setDefault(cookie_manager); WebView wv = new WebView(); 现在让我们说,我们这样做: String url = "http://www.google.com/"; wv.getEngine.go(url); 在进行此请求之后,在Eclipse中进行debugging显示cookie存储地图包含一个cookie: {http://www.google.com/=[NID=67=XWOQNK5VeRGEIEovNQhKsQZ5-laDaFXkzHci_uEI_UrFFkq_1d6kC-4Xg7SLSB8ZZVDjTUqJC_ot8vaVfX4ZllJ2SHEYaPnXmbq8NZVotgoQ372eU8NCIa_7X7uGl8GS, PREF=ID=6505d5000db18c8c:FF=0:TM=1358526181:LM=1358526181:S=Nzb5yzBzXiKPLk48]} 太棒了 WebEngine只需使用底层注册的Cookie引擎! 但是等一下,是不是? 让我们尝试添加一个cookie,然后再提出请求… cookie_store.add(new URL(url).toURI(), new HttpCookie("testCookieKey", "testCookieValue")); 然后,我在Wireshark中查看请求… GET / HTTP/1.1 Accept-Language: […]
使用Express.js ,会话非常简单。 我很好奇他们是如何工作的。 它是否在客户端存储一些cookie? 如果是这样,我在哪里可以find该cookie? 如果需要,我该如何解码? 我基本上希望能够看到用户是否login,即使当时用户并不真正在网站上(例如,如果Facebook知道您在其他网站上login时如何login)。 但我想明白,我应该先了解会议的工作。
我需要用一个cookie在两个不同的域之间共享SSO信息,这可以用PHP来完成吗?