苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

HttpHelper万能框架(V2.3) HttpHelper官方出品,无敌框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V1.9) 最牛的爬虫类,没有爬不到只有想不到 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 166|回复: 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;
            }


请大神指导;
 楼主| 发表于 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 | 显示全部楼层
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2019-5-27 11:12

© 2017-2018

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