日期:2014-05-17  浏览次数:20758 次

求助,使用C#自动登录网站获取信息遇到个问题,请高手帮忙看一下代码
各位高手帮个忙,刚学习使用HTTPREQUEST来登录网站获取信息,现在拿盛大通行证做了个测试,遇到了一个问题。
我想登录账号获得账号的可用积分余额,可登录成功了,在获取下一个页面信息的时候出错了,附上代码如下,请高手指点一下。
盛大通行证登录地址 http://www.sdo.com/loginPT.asp

private CookieContainer myCookieContainer;
private Encoding charset = Encoding.GetEncoding("GB2312");

private string HTTPGET(string url)
{
    string outdata;
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    myHttpWebRequest.CookieContainer = myCookieContainer;
    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
    Stream myResponseStream = myHttpWebResponse.GetResponseStream();
    StreamReader myStreamReader = new StreamReader(myResponseStream, charset);
    outdata = myStreamReader.ReadToEnd();
    myStreamReader.Close();
    myResponseStream.Close();
    return outdata;
}

private string HTTPPOST(string url, string postData)
{
    string outdata;

    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
    myHttpWebRequest.ContentLength = postData.Length;
    myHttpWebRequest.Method = "POST";
    myHttpWebRequest.CookieContainer = myCookieContainer;

    Stream myRequestStream = myHttpWebRequest.GetRequestStream();
    StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.Default);
    myStreamWriter.Write(postData);
    myStreamWriter.Close();
    myRequestStream.Close();

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
    Stream myResponseStream = myHttpWebResponse.GetResponseStream();
    StreamReader myStreamReader = new StreamReader(myResponseStream, charset);
    outdata = myStreamReader.ReadToEnd();
    myStreamReader.Close();
    myResponseStream.Close();

    return outdata;
}

private void btnStart_Click(object sender, EventArgs e)
{
    string strHTML = string.Empty;
    //登录
    myCookieContainer = new CookieContainer();
    string loginUrl = "http://dplogin.sdo.com/dispatchlogin.fcgi?service=http%3A%2F%2Fjf%2Esdo%2Ecom%2FRedirectPage%2Easpx%3Ftarget%3DUserHouse%2FQueryScore%2Easpx";
    string loginPost = "warn=false&lt=test&_eventId=submit&idtype=0&gamearea=0&gametype=0&username={0}&password={1}&ekey=&challenge=&domaink=jf.sdo