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();
}
}
}