http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 15184|回复: 10

[其他] C# 无法取到cookies 不会用系统的wininet 慕名飞哥论坛来求助

[复制链接]
发表于 2013-11-11 13:07:17 | 显示全部楼层 |阅读模式
出来炸到论坛、这个论坛以后一定能一天比一天好!

我问题可能很简单。只是自己搞不明白,初次学习抓包,遇到一个对我来说比较大的难题

QQ客户端登陆后,任意打开一个群!有个访问群空间,我想通过clientkey 直接登录!
问题来了,怎么也取不到cookies,百度查貌似是因为:httponly  什么属性的原因。有哥们儿告诉我用 wininet.dll 可以获取到,经过百度一帆搜索,终于取到了!但是,从来没用过系统api..完全不知道下一步怎么做!
我这个HTTP包,登陆后取得Cookies
http://ptlogin2.qq.com/group2?clientuin=QQ号&clientkey=客户端ID&gid=群号码
在访问:http://qun.qzone.qq.com/cgi-bin/group_share_list 获得群共享列表

请各位师兄师姐 们帖个代码出来! 我好学习,以后抓其他包才懂得怎么用!最好是通过wininet实现,因为我用不来。顺便把这个学了,以后接触到其他系统函数才不陌生



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-11-11 16:25:31 | 显示全部楼层
我还是比较喜欢交流技术,或者是解决问题,直接让写个东西之类的,说实话时间不允许
 楼主| 发表于 2013-11-11 16:27:00 | 显示全部楼层
站长苏飞 发表于 2013-11-11 16:25
我还是比较喜欢交流技术,或者是解决问题,直接让写个东西之类的,说实话时间不允许

嗯。能有个 案列通过 wininet 获得cookies 请求某个网页的的案列也好!首次接触。所以比较棘手
 楼主| 发表于 2013-11-11 17:21:53 | 显示全部楼层
站长苏飞 发表于 2013-11-11 16:25
我还是比较喜欢交流技术,或者是解决问题,直接让写个东西之类的,说实话时间不允许

QQ图片20131111172034.jpg
QQ图片20131111172043.jpg

QQ图片20131111172046.jpg


飞哥,如图。我写错了吗?cookies成功通过 wininet取到了
发表于 2013-11-11 17:32:14 | 显示全部楼层
这个写法没错,对不对我就不清楚了,图上并没有给出这个你自己应该能看出来
 楼主| 发表于 2013-11-11 17:35:28 | 显示全部楼层
站长苏飞 发表于 2013-11-11 17:32
这个写法没错,对不对我就不清楚了,图上并没有给出这个你自己应该能看出来

但是效果和你那个 软件取到的不一致,我没有用控件!直接用wininet取的cookies,刚刚在论坛 逛了下, 如果没用控件。貌似需要:InternetSetCookieEx 这个函数不会用。。。要是会用了,应该此帖可以结了!
发表于 2013-11-12 14:34:40 | 显示全部楼层
  1.         [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
  2.         static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref int pcchCookieData, int dwFlags, object lpReserved);
  3.         //取出Cookie,当登录后才能取
  4.         public static string GetCookieString(string url)
  5.         {
  6.             // Determine the size of the cookie      
  7.             int datasize = 256;
  8.             StringBuilder cookieData = new StringBuilder(datasize);
  9.             if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))
  10.             {
  11.                 if (datasize < 0)
  12.                     return null;
  13.                 // Allocate stringbuilder large enough to hold the cookie   
  14.                 cookieData = new StringBuilder(datasize);
  15.                 if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, null))
  16.                     return null;
  17.             }
  18.             return cookieData.ToString();
  19.         }
复制代码
 楼主| 发表于 2013-11-26 08:40:26 | 显示全部楼层
发表于 2013-11-26 09:33:11 | 显示全部楼层
解决了没有,你楼上的方法,我在Htttphelper类里面有
 楼主| 发表于 2014-1-10 14:35:28 | 显示全部楼层
站长苏飞 发表于 2013-11-26 09:33
解决了没有,你楼上的方法,我在Htttphelper类里面有

解决了!
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-23 21:29

© 2014-2021

快速回复 返回顶部 返回列表