PC上的Cookie是怎么创建起来的?需要服务端告知吗?现在用HttpClient做模拟IE登陆, 认为Cookie是从Sever端的报文头获得的, 但实际上不是这么回事。
想问一下Client端如果要创建Cookie,依据是什么?比如sina的登陆, 创建的Cookie是:SINAGLOBAL
121.77.131.181.303561228566931361
sina.com.cn/
1104
2654992128
30744557
3875976608
30010302
*我如何知道要创建这样一个Cookie呢!
想问一下Client端如果要创建Cookie,依据是什么?比如sina的登陆, 创建的Cookie是:SINAGLOBAL
121.77.131.181.303561228566931361
sina.com.cn/
1104
2654992128
30744557
3875976608
30010302
*我如何知道要创建这样一个Cookie呢!
Js也可以生成。
java.net.URL url = new java.net.URL("http://bbs.abcbit.com/viewthread.php?tid=214878&extra=page%3D1/"); 如果他们需要记录cookie的话,应该把cookie信息带过去, 因为这样请求等于又重新建立连接,没有传递和记载cookie 你应该附带cookie,例如:
URLConnection uc = new URL(url).openConnection();
uc.setRequestProperty("Cookie", "xxx=xxxxxxx;xxx=xxx");
参照这个帖子,我很久以前回复的:http://topic.csdn.net/u/20090211/11/0c087f5b-df0f-4fd8-b4d1-e75773a32be2.html
HttpClient httpclient=new HttpClient();
httpclient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);//RFC_2109是支持较普遍的一个,还有其他cookie协议
HttpState initialState = new HttpState();
Cookie cookie=new Cookie();
cookie.setDomain("www.balblabla.com");
cookie.setPath("/");
cookie.setName("name");
cookie.setValue("1111111111");
initialState.addCookie(cookie);
httpclient.setState(initialState);
HttpClient httpclient=new HttpClient();
httpclient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);//RFC_2109是支持较普遍的一个,还有其他cookie协议
HttpState initialState = new HttpState();
Cookie cookie=new Cookie();
cookie.setDomain("www.balblabla.com");
cookie.setPath("/");
cookie.setName("name");
cookie.setValue("1111111111");
initialState.addCookie(cookie);
httpclient.setState(initialState);
假如去某商店购物,当你是第一次去时,商店觉得你是一个可以发展的客户,于是给你发张标记卡,并告诉你,
下次来带着这张卡,买东西打8拆。
以后你去这家店时,出示卡片,店家就能认识你了,然后给你打拆。Cookie的作用和这个相类的,创建的时机也是这样,而为什么要创建,是因为需要用来满足某个业务需求。比如你登录CSDN时,有个选择,两次内不登录。如果你有这样需求,并选择了那个项,那服务器就知道,现在要给你一个Cookie,
记录你用户名:Cookie cookie = new Cookie("user","000");
cookie.setPath("/csdn/user");//在服务器中这个PATH下的应用可以获得此COOKIE
cookie.setMaxAge(60*60*24*7);//COOKIE在客户端的有效期为一周
response.addCookie(cookie);
当你进入登录成功的页面,HTTP响应会通过在头文件中加入COOKIE信息,浏览器获取到这个HTTP响应后,创建
本地COOKIE并保存。