本文共 4537 字,大约阅读时间需要 15 分钟。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.IO;using System.Text.RegularExpressions;namespace SinaLoginApp{ class Class3 { public static void A() { HttpWebRequest request = null; HttpWebResponse response = null; string gethost = string.Empty; CookieContainer cc = new CookieContainer(); string Cookiesstr = string.Empty; try { //第一次POST请求 string postdata = @"entry=account&gateway=1&from=&savestate=0&useticket=0&vsnf=1&su=NTkxNzU3ODMzJTQwcXEuY29t&service=account &sp=312tedijoteamo&encoding=UTF-8&prelt=0&callback=parent.sinaSSOController.loginCallBack&returntype=IFRAME &setdomain=1";//模拟请求数据 string LoginUrl = "https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.22)"; request = (HttpWebRequest)WebRequest.Create(LoginUrl);//实例化web访问类 request.Method = "POST";//数据提交方式为POST //模拟头 request.ContentType = "application/x-www-form-urlencoded"; byte[] postdatabytes = Encoding.UTF8.GetBytes(postdata); request.ContentLength = postdatabytes.Length; request.Referer = "login.sina.com.cn"; request.AllowAutoRedirect = false; request.CookieContainer = cc; request.KeepAlive = true; //提交请求 Stream stream; stream = request.GetRequestStream(); stream.Write(postdatabytes, 0, postdatabytes.Length); stream.Close(); //接收响应 response = (HttpWebResponse)request.GetResponse(); //保存返回cookie response.Cookies = request.CookieContainer.GetCookies(request.RequestUri); CookieCollection cook = response.Cookies; string strcrook = request.CookieContainer.GetCookieHeader(request.RequestUri); Cookiesstr = strcrook; //取第一次GET跳转地址 StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312")); string content = sr.ReadToEnd(); response.Close(); } catch (Exception) { //第一次POST出错; } try { gethost = "http://login.sina.com.cn/crossdomain2.php?action=logincallback&retcode=0&reason=&callback=parent.sinaSSOController.loginCallBack&setdomain=1"; //第一次GET跳转地址 request = (HttpWebRequest)WebRequest.Create(gethost); request.Method = "GET"; request.KeepAlive = true; request.Headers.Add("Cookie:" + Cookiesstr); request.CookieContainer = cc; request.AllowAutoRedirect = false; response = (HttpWebResponse)request.GetResponse(); //设置cookie Cookiesstr = request.CookieContainer.GetCookieHeader(request.RequestUri); //取再次跳转链接 StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string content = sr.ReadToEnd(); request.Abort(); sr.Close(); response.Close(); } catch (Exception) { //第一次GET出错 } try { gethost = "http://login.sina.com.cn/member/my.php?entry=sso"; //第一次GET地址 request = (HttpWebRequest)WebRequest.Create(gethost); request.Method = "GET"; request.KeepAlive = true; request.Headers.Add("Cookie:" + Cookiesstr); request.CookieContainer = cc; request.AllowAutoRedirect = false; response = (HttpWebResponse)request.GetResponse(); //设置cookie Cookiesstr = request.CookieContainer.GetCookieHeader(request.RequestUri); //取再次跳转链接 StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312")); string content = sr.ReadToEnd(); request.Abort(); sr.Close(); response.Close(); } catch (Exception) { //第一次GET出错 } } }}
转载地址:http://vyunb.baihongyu.com/