阿里妈妈自动登录程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Net;
using System.IO;
using System.Text;
using System.Xml;
using System.IO.Compression;

namespace MvcApplication1.Controllers
{
    public class IndexController : Controller
    {
        //
        // GET: /Default1/

        public ContentResult Index()
        {
            
            return Content(getXMLDocumentFromXMLTemplate("http://www.alimama.com/index.htm"));
        }

        public string getXMLDocumentFromXMLTemplate(string inURL)
        {
            HttpWebRequest myHttpWebRequest = null;     
            HttpWebResponse myHttpWebResponse = null;

            //第一次请求信息的获取
            myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(inURL);
            myHttpWebRequest.Method = "GET";
            //设置请求头信息
            SetGetHeaders(myHttpWebRequest);
            //Get Response
            myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

            //取出第一次cookies信息,建立引用
            CookieCollection first = myHttpWebResponse.Cookies;


            //第二次请求开始
            myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("https://www.alimama.com/member/minilogin_act.htm");
            myHttpWebRequest.Method = "POST";
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
            //设置请求头信息
            SetGetHeaders(myHttpWebRequest);
            myHttpWebRequest.CookieContainer.Add(first);
            myHttpWebRequest.Referer = "http://www.alimama.com/membersvc/member/login.htm";
            //302 不做跳转
            myHttpWebRequest.AllowAutoRedirect = false;

            string Post = "_tb_token_=" + first["_tb_token_"].Value + "&style=&redirect=&proxy=http%3A%2F%2Fwww.alimama.com%2Fproxy.htm&logname=<*****>%40qq.com&originalLogpasswd=<*****>&logpasswd=c781f1ee5ab17dff12ff6019325688f2";

            byte[] bs = Encoding.ASCII.GetBytes(Post);

            myHttpWebRequest.ContentLength = bs.Length;
           using (Stream reqStream = myHttpWebRequest.GetRequestStream())
           {
               reqStream.Write(bs, 0, bs.Length);
               reqStream.Close();
           }
            myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

            //取出第二次cookies信息,建立引用(无临时重定向)
            CookieCollection second = myHttpWebResponse.Cookies;

            //模拟浏览器重定向 

            myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("https://www.alimama.com/member/minilogin_success.htm");
            myHttpWebRequest.Method = "GET";
            //设置请求头信息
            SetGetHeaders(myHttpWebRequest);
            myHttpWebRequest.CookieContainer.Add(second);
            //Get Response
            myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

            second["rurl"].Value = "";

            second["v"].Value = "0";

            //请求列表页面,第四次请求
            myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://ad.alimama.com/account/incomeDetail.htm");
            myHttpWebRequest.Method = "GET";
            //设置请求头信息
            SetGetHeaders(myHttpWebRequest);

            myHttpWebRequest.CookieContainer.Add(second);
            myHttpWebRequest.CookieContainer.Add(first["t"]);
            myHttpWebRequest.CookieContainer.Add(first["cookie2"]);
            //Get Response
            myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

            StreamReader readers = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.UTF8);
            string text = readers.ReadToEnd();

            readers.Close();
            readers.Dispose();
            return text;
        }
        public void SetGetHeaders(HttpWebRequest request)
        {
            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            //request.Headers.Add("Accept-Encoding", "gzip, deflate");
            request.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
            request.Host = "www.alimama.com";
            request.KeepAlive = true;
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0";
            request.CookieContainer = new CookieContainer();
        }
    }
}

 

posted @ 2013-08-04 15:02  海叔  阅读(2106)  评论(0编辑  收藏  举报