HTTP 附带cookies模拟登录 (RSA加密)

   HTTP 附带cookies模拟登录原理很简单,首先构建HTTP请求,登录成功后将返回的cookies信息保存起来,然后客户端用保存的cookies进行Get请求进行,进行欺骗浏览器访问,此次我是用博客园的进行登录跳转,没想到这网站post的数据是用RSA加密,内心这个崩溃啊,早上是用HTTP请求模拟微信公众号给用户发送信息,没想到微信也是对请求后跳转的网页进行了加密处理,下面是模拟登录的代码

    /// 获取Cookies
    /// </summary>
    /// <param name="postData">post到URL的数据</param>
    /// <param name="url"></param>
    /// <returns></returns>
    public static CookieContainer GetCookies(string postData, string url)
    {
        try
        {
            CookieContainer cookies = null;
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            request.CookieContainer = cookies;
            request.ContentType = "application / json; charset = utf - 8";
            request.Method = "post";
            request.ContentLength = postData.Length;
            Stream requestStream = request.GetRequestStream();
            Byte[] bytes = System.Text.Encoding.UTF8.GetBytes(postData);
            requestStream.Write(bytes, 0, bytes.Length);
            requestStream.Close();
            ServicePointManager.CertificatePolicy = new AcceptAllCertificatePolicy();
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;
            //校验是否成功跳转到登录成功后的页面
            //using (StreamReader sReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8")))
            //{
            //    String text = sReader.ReadToEnd(); 
            //}
            return cookies;
        }
        catch (Exception ex)
        {
            throw new Exception(ex.StackTrace);
        }

    }
    /// <summary>
    /// 对SSL/TSL管道建立安全信任关系
    /// </summary>
    public class AcceptAllCertificatePolicy : ICertificatePolicy
    {
        public AcceptAllCertificatePolicy()
        {
        }
        public   bool CheckValidationResult(ServicePoint sPoint, X509Certificate cert, WebRequest wRequest, int certProb)
        {
            // Always accept  
            return true;
        }
    }
    /// <summary>
    /// 根据获取的cookies进行Get请求
    /// </summary>
    /// <param name="cookie">拿到的Cookies数据</param>
    /// <param name="url">附带cookies进行跳转的URL</param>
    /// <returns></returns>
    static string GetContent(CookieContainer cookie, string url)
    {
        string content = string.Empty; //保存cookie检验后获取的数据
        HttpWebRequest httpRequest = HttpWebRequest.Create(url) as HttpWebRequest;
        httpRequest.CookieContainer = cookie;
        httpRequest.Referer = url;
        httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko";
        httpRequest.Accept = "text/html, application/xhtml+xml, */*";
        httpRequest.ContentType = "application/x-www-form-urlencoded";
        httpRequest.Method = "GET";
        HttpWebResponse httpResponse = httpRequest.GetResponse() as HttpWebResponse;
        using (Stream responsestream = httpResponse.GetResponseStream())
        {

            using (StreamReader sr = new StreamReader(responsestream, System.Text.Encoding.UTF8))
            {
                content = sr.ReadToEnd();
            }
        }
        return content;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值