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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 5295|回复: 2

[求助] HttpHelper访问HTTPS时候重新定向cookie问题

[复制链接]
发表于 2019-5-10 16:37:13 | 显示全部楼层 |阅读模式
1、访问Https页面是,需进行302重新定位,然后获取cookie,再转回来;
访问A,由于cookie是空的,所以会302,跳转到B,然后 在报头会有  set-cookie;  设置完cookie后,采用此COOKIE访问A就正常;
实现过程中,跳到B获取到cookie后,也设置进去了,但是实际访问没有增加cookie,导致无法进入;
实现代码如下;
[C#] 纯文本查看 复制代码
        protected HttpItem m_httpitem = new HttpItem()
        {
            URL = "",//URL     必需项  
            Method = "GET",//URL     可选项 默认为Get  
            Timeout = 4000,//连接超时时间     可选项默认为100000   2000
            ReadWriteTimeout = 5000,//写入Post数据超时时间     可选项默认为30000  3000
            IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写  
            //Cookie = "",//字符串Cookie     可选项  
            UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",//用户的浏览器类型,版本,操作系统     可选项有默认值  
            Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",//    可选项有默认值  
            ContentType = "application/x-www-form-urlencoded",//返回类型    可选项有默认值  
            Referer = "",//来源URL     可选项  
            Allowautoredirect = false,//是否根据301跳转     可选项  
            AutoRedirectCookie = false,//是否自动处理Cookie     可选项  
            //CerPath = "d:\123.cer",//证书绝对路径     可选项不需要证书时可以不写这个参数  
            //Connectionlimit = 1024,//最大连接数     可选项 默认为1024  
            Postdata = "",//Post数据     可选项GET时不需要写  
            //ProxyIp = "127.0.0.1:8888",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数  
            //ProxyPwd = "123456",//代理服务器密码     可选项  
            //ProxyUserName = "administrator",//代理服务器账户名     可选项  
            ResultType = ResultType.String,//返回数据类型,是Byte还是String  
            CookieCollection = null,
            ResultCookieType = ResultCookieType.CookieCollection
        };
            m_httpitem.CookieCollection = new CookieCollection();

            //m_httpitem.Allowautoredirect = true;//是否根据301跳转     可选项  
            //m_httpitem.AutoRedirectCookie = true;//是否自动处理Cookie     可选项   
            //直接访问B站,获取Cookie
            m_httpitem.URL = m_loginParam.url[m_urlcur] + "/ssid1?url=/";
            m_httpitem.Referer = "";
            HttpResult result = m_http.GetHtml(m_httpitem);
            //设置获取到的Cookie
            m_httpitem.CookieCollection.Add(result.CookieCollection);

            //返回访问A站 ----此步骤查看监控,cookie没有带上
            m_httpitem.URL = m_loginParam.url[m_urlcur];
            m_httpitem.Referer = "";
            result = m_http.GetHtml(m_httpitem);
            
            if (result.StatusCode != System.Net.HttpStatusCode.OK || result.Html == null)
            {
                return string.Empty;
            }


请大神指导;


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2019-5-10 16:48:37 | 显示全部楼层
   m_httpitem.Allowautoredirect = true;//是否根据301跳转     可选项  
   m_httpitem.AutoRedirectCookie = true;//是否自动处理Cookie     可选项   
如采用自动跳转的方式,通过监控发现一只在ABABAB的跳。获取到B的COOKIE后,跳会A没有采用COOKIE访问,又跳会B时候,才会用上一次在B站拿到的COOKIE访问;
发表于 2019-5-10 17:29:25 | 显示全部楼层
用字符串Cookie试试
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-19 20:16

© 2014-2021

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