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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 15693|回复: 13

[HttpHelper] .net4.0以下的CookieContainer存在一个bug

[复制链接]
发表于 2015-5-11 13:10:23 | 显示全部楼层 |阅读模式
1金钱
感觉和net3.5 获取到的cookie不一样 少了好几个 不知道这个问题如何解决



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-5-11 13:56:02 | 显示全部楼层
3.5?你是通过什么获取的Cookie,我的类吗?
回复

使用道具 举报

 楼主| 发表于 2015-5-11 13:58:09 | 显示全部楼层
站长苏飞 发表于 2015-5-11 13:56
3.5?你是通过什么获取的Cookie,我的类吗?

CookieCollection 通过这个获取
回复

使用道具 举报

发表于 2015-5-11 14:02:57 | 显示全部楼层
你的意思是说2.0和4.0的有分别获取的是吧,是用的我的类吗?

如果是这个问题安说是不存在的。可以贴下代码看下具体情况
回复

使用道具 举报

 楼主| 发表于 2015-5-11 14:08:21 | 显示全部楼层
站长苏飞 发表于 2015-5-11 14:02
你的意思是说2.0和4.0的有分别获取的是吧,是用的我的类吗?

如果是这个问题安说是不存在的。可以贴下代 ...

我做了测试 net3.5 框架完全没任何问题   但是换了net4.0就发现cookie会少的
回复

使用道具 举报

 楼主| 发表于 2015-5-11 14:08:55 | 显示全部楼层
站长苏飞 发表于 2015-5-11 14:02
你的意思是说2.0和4.0的有分别获取的是吧,是用的我的类吗?

如果是这个问题安说是不存在的。可以贴下代 ...

人家话这个代码可以解决那个问题 :
    private void BugFix_CookieDomain(CookieContainer cookieContainer)  
        {  
            System.Type _ContainerType = typeof(CookieContainer);  
            Hashtable table = (Hashtable)_ContainerType.InvokeMember("m_domainTable",  
                                       System.Reflection.BindingFlags.NonPublic |  
                                       System.Reflection.BindingFlags.GetField |  
                                       System.Reflection.BindingFlags.Instance,  
                                       null,  
                                       cookieContainer,  
                                       new object[] { });  
            ArrayList keys = new ArrayList(table.Keys);  
            foreach (string keyObj in keys)  
            {  
                string key = (keyObj as string);  
                if (key[0] == '.')  
                {  
                    string newKey = key.Remove(0, 1);  
                    table[newKey] = table[keyObj];  
                }  
            }  
        }  

我也测试过不行
回复

使用道具 举报

发表于 2015-5-11 14:11:43 | 显示全部楼层
这个看上去和获取Cookie没有什么关系吧,使用字符串Cookie正常吗?

回复

使用道具 举报

 楼主| 发表于 2015-5-11 14:23:40 | 显示全部楼层
站长苏飞 发表于 2015-5-11 14:11
这个看上去和获取Cookie没有什么关系吧,使用字符串Cookie正常吗?

飞哥 貌似用字符串 不成功呢。  是不是字符串的要保证一个全局的Cookie 是不是需要把每次请求回来的新的cookie拼接的?
回复

使用道具 举报

发表于 2015-5-11 14:46:16 | 显示全部楼层
要不要拼接是要看页面是否需要,可以抓包看看
回复

使用道具 举报

 楼主| 发表于 2015-5-11 14:54:13 | 显示全部楼层
站长苏飞 发表于 2015-5-11 14:46
要不要拼接是要看页面是否需要,可以抓包看看

能够访问 直接用返回来的Cookie不是最新的?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 05:23

© 2014-2021

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