__VIEWSTATE)。HttpWebRequest,設定 CookieContainer 維持 Session。CookieContainer 即可存取需登入頁面。public static string GetHtml(string url)
{
WebRequest req = WebRequest.Create(url);
req.Credentials = CredentialCache.DefaultCredentials;
using (WebResponse resp = req.GetResponse())
using (StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.Default))
return sr.ReadToEnd();
}
string cookie = resp.Headers.Get("Set-Cookie");
byte[] postData = Encoding.UTF8.GetBytes("username=xxx&password=yyy");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = postData.Length;
using (Stream s = req.GetRequestStream())
s.Write(postData, 0, postData.Length);
原文提供 Demo 專案 (附件) 實作盛大通行證登入流程:多步驟重導向、Ticket 交換、跨網域 Cookie 傳遞。核心原理相同,皆為模擬瀏覽器 HTTP 行為。
CookieContainer 發送請求即可進行發文、下載等操作。