c#POST请求登录网页,如何保持登录状态啊,代码如下
HttpHelper _http;
string _outCookie = string.Empty;
public Form1()
{
InitializeComponent();
_http = new HttpHelper(Encoding.UTF8);
}
private void button1_Click(object sender, EventArgs e)
{
string postdata = "username=zheng8895&password=123321&keep_login=on&forward=http%3A%2F%2Fs1.sg2.ledu.com";
string url = "http://pass.ledu.com/user/login";
string refurl = "http://pass.ledu.com/user/login?forward=http%3A%2F%2Fs1.sg2.ledu.com&";
string data = _http.PostData(url, refurl, postdata, ref _outCookie);
richTextBox1.AppendText(data);
}
还有一个POST的类没贴出来,太长 了
------解决方案--------------------
Cookie[] cookies = null;
if (HttpContext.Current.Session["ResponseSessionID"] != null)
{
cookies = new Cookie[1];
cookies[0] = new Cookie("ASP.NET_SessionId", HttpContext.Current.Session["ResponseSessionID"].ToString());
}
------解决方案--------------------这个是我用的方法,传进去了一个CookieContainer ,默认可以null,你请求后,登录成功了,方法返回CookieContainer 这个你留着就可以了,下次 再用这个去,就是登录状态了,关于持久化,你看下序列化就知道了哦。
/// <summary>
/// Get 方式 获取数据
/// </summary>
/// <param name="webUrl"></param>
/// <returns></returns>
public Model.WebRequestReturnModel WebRequestGetHtmlByGet(string webUrl, CookieContainer cookieContainer, Encoding encoding, string refer,Model.Proxy proxy)
{
Model.WebRequestReturnModel model = new Model.WebRequestReturnModel();
HttpWebRequest webrequest =