老问题,如何获得cookie中某一部分的值?

职业炒股 2011-08-08 02:06:46
抓包解析的cookie如下:
Cookie: OOFL=wct511%40126.com; OOFO=%7B%22active_time%22%3A1312773235%2C%22app%22%3A%22u%22%2C%22birthday%22%3A%220000-00-00%22%2C%22gender%22%3A%22%22%2C%22location%22%3A%220%22%2C%22login_ip%22%3A%22218.17.55.167%22%2C%22login_time%22%3A1312773235%2C%22user_id%22%3A%222364079%22%2C%22sign%22%3A%225e9c23cb221b4a9ff064294e1733bfb2%22%7D; OOFA=%2507%2504WRVU%2508%250C%2512r%250DGwQ%2513%250As%251D%2523%255C%251C%250Cq%2540%250A%2527X%2512%2500%2515%250D%2502%2504wPTPLRYZ%250D%2509Q%2507P%2501%2505%2501%250AUQ%2503%2503%250BRP%255D%2500V%2506P%2509%2503%2501%2503YRRQ%2508%2506UT%250CRRU%2506%2505%2504%250C%2504%2500%250F; CUS_2364079=1

UTF-8还原成简体中文后是
Cookie: OOFL=wct511@126.com OOFO={"active_time":1312773235,"app":"u","birthday":"0000-00-00","gender":"","location":"0","login_ip":"218.17.55.167","login_time":1312773235,"user_id":"2364079","sign":"5e9c23cb221b4a9ff064294e1733bfb2"} OOFA=%07%04WRVU%08%0C%12r%0DGwQ%13%0As%1D%23%5C%1C%0Cq%40%0A%27X%12%00%15%0D%02%04wPTPLRYZ%0D%09Q%07P%01%05%01%0AUQ%03%03%0BRP%5D%00V%06P%09%03%01%03YRRQ%08%06UT%0CRRU%06%05%04%0C%04%00%0F CUS_2364079=1

我这里要取 OOFA=%07%04WRVU%08%0C%12r%0DGwQ%13%0As%1D%23%5C%1C%0Cq%40%0A%27X%12%00%15%0D%02%04wPTPLRYZ%0D%09Q%07P%01%05%01%0AUQ%03%03%0BRP%5D%00V%06P%09%03%01%03YRRQ%08%06UT%0CRRU%06%05%04%0C%04%00%0F这一块的值。
如何获得?


...全文
319 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2011-08-08
  • 打赏
  • 举报
回复
CInternetSession::GetCookie();应该能得到cookie的信息吧,然后CString::Find()/Mid/Left/Right()应该就可以得到你想要的内容了吧~
职业炒股 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ganzhezeng2 的回复:]
引用 4 楼 hanbingfengying 的回复:

引用 1 楼 allen_zhang 的回复:
不就是字符串截取吗?有没有特殊的标示?没有就以}这个为标示截取就行了


如果我有这个字符段也好。。。怎么能获得这个字符段并存储下来呢??

如果这一段在set-cookie中

HttpQueryInfo
Retrieves header information ass……
[/Quote]


嗯 我在试呢
我这有两个方法,一个是internetgetcookie,可以获得cookie,但是要从UTF-8的wchar_t转码到 Unicode的string,然后substring定位取所需信息。
第二个是 HttpQueryInfo 直接读取返回包的cookie,这里一直无法读取成功,好像也是编码的问题。httpqueryinfo的参数类型感觉很混乱,明明是对的可是就是不会正常获得。


第一
wchar_t *lpszData = NULL;//大小由你的内容大小决定QuerInfo你能查的
lpszData = new wchar_t[1024];
DWORD dwBuffLen = sizeof(lpszData);

if (!HttpQueryInfo(hRequest1,HTTP_QUERY_COOKIE ,lpszData,&dwBuffLen,NULL))
{
printf("ReadCookie failed %d\n",GetLastError());
}
第二
char *lpszData[1024];
DWORD dwBuffLen = sizeof(lpszData);
if (!HttpQueryInfo(hRequest1,HTTP_QUERY_COOKIE ,lpszData,&dwBuffLen,NULL))
{
printf("ReadCookie failed %d\n",GetLastError());
}

错误类型都是12150 郁闷!!!!
晚上我再继续搞搞!!! 模拟浏览器到今天正好一个星期了,不想最后在这里功亏一篑啊!!!!!
solohac 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hanbingfengying 的回复:]

引用 1 楼 allen_zhang 的回复:
不就是字符串截取吗?有没有特殊的标示?没有就以}这个为标示截取就行了


如果我有这个字符段也好。。。怎么能获得这个字符段并存储下来呢??
[/Quote]
如果这一段在set-cookie中

HttpQueryInfo
Retrieves header information associated with an HTTP request.
职业炒股 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 allen_zhang 的回复:]
不就是字符串截取吗?有没有特殊的标示?没有就以}这个为标示截取就行了
[/Quote]

如果我有这个字符段也好。。。怎么能获得这个字符段并存储下来呢??
职业炒股 2011-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ganzhezeng2 的回复:]
cookie来自于发出cookie之前的数据包,在2个位置找找看:
1.set-cookie,在header中
2.在页面中
[/Quote]
这个值我可以找的到。。。
最关键的是 我不会取出来。。
我用的是Wininet 这里面所有的cookie都是自动的发送的
我现在只需要这么一段额。。。怎么办
solohac 2011-08-08
  • 打赏
  • 举报
回复
cookie来自于发出cookie之前的数据包,在2个位置找找看:
1.set-cookie,在header中
2.在页面中
Allen_zhang 2011-08-08
  • 打赏
  • 举报
回复
不就是字符串截取吗?有没有特殊的标示?没有就以}这个为标示截取就行了

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧