苏飞论坛

标题: HttpHelper访问HTTPS时候重新定向cookie问题 [打印本页]

作者: 小目标    时间: 2019-5-10 16:37
标题: HttpHelper访问HTTPS时候重新定向cookie问题
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
   m_httpitem.Allowautoredirect = true;//是否根据301跳转     可选项  
   m_httpitem.AutoRedirectCookie = true;//是否自动处理Cookie     可选项   
如采用自动跳转的方式,通过监控发现一只在ABABAB的跳。获取到B的COOKIE后,跳会A没有采用COOKIE访问,又跳会B时候,才会用上一次在B站拿到的COOKIE访问;
作者: 站长苏飞    时间: 2019-5-10 17:29
用字符串Cookie试试




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4