cookie的修改

1、如何自己创建http头部:

先抓包自己登陆的网站封确定下封包头是什么样子的

然后构造

以下网址链接都是举例用的,实际网址及链 需要自己用抓包工具确定!

CString UrlHeadStr=_T("Accept: */*/r/nReferer: http://www.sina.com.com/r/nAccept-Language: zh-tw/r/nAccept-Encoding: gzip, deflate/r/nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)/r/nHost:www.sina.com: Keep-Alive/r/n");

 构造完了连接:

JionstrUrl 为要连接网站的web地址,里面某些参数我使用默认值 具体需求 请参照msdn。

CHttpFile *pfile=(CHttpFile *)session->OpenURL(JionstrUrl,1,1,UrlHeadStr,UrlHeadStr.GetLength());

或者通过 :

nPort 为网站端口

CHttpConnection* pconnection =session->GetHttpConnection(_T("www.sina.com.cn"),nPort); //l连接网站服务器 
 CHttpFile *pfile = pconnection->OpenRequest(CHttpConnection::HTTP_VERB_GET,_T("/member_join.php?rid=1"));
 pfile->AddRequestHeaders(UrlHeadStr);

 

2、cookie的修改:

cookie 没有办法通过 ::AddRequestHeader进行修改的这点要切记,企图用这个方法修改就是徒劳。而且在一个进程环境中,连接过的网站,在不同的时间、不同线程、不同session里创建的对象中 都是相同的。这个某些特殊开发中非常郁闷了。查阅了大量网站 都说 无法修改尤其是清除掉cookie的某个键值,并且说这个是个bug其实这个是不对的。我们这里假设我们要清空cookie里的三个键值分别是:

PHPSESSID  ROUTEID  loginname 这里的键值 就是你抓包看到的Cookie:里xxxxxx= 字样中的xxxxx就为一个键值;

 

 session->SetCookie(JionstrUrl,_T("PHPSESSID"),_T("deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT"));//清空Cookie
 session->SetCookie(JionstrUrl,_T("ROUTEID"),_T("deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT"));//清空Cookie
 session->SetCookie(JionstrUrl,_T("loginname"),_T("deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT"));//清空Cookie

 

使用这样就可以cookie里 PHPSESSID  ROUTEID  loginname 三个键值取消掉了,原理是设置过期时间为电脑已经发生过的日期。

 

你可能感兴趣的:(session,windows,服务器,工具,web)