私のコメントに沿って、cookiejar (これにより、リクエスト間で永続的なセッションが可能になります)、uri、およびパラメーターを取り込んで URI に投稿するメソッドを作成しました。
private static string PerformPostRequest(string uri, CookieContainer cookieJar, string parameters)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.CookieContainer = cookieJar;
byte[] bytes = Encoding.ASCII.GetBytes(parameters);
Stream os = null;
request.ContentLength = bytes.Length;
os = request.GetRequestStream();
os.Write(bytes, 0, bytes.Length);
if (os != null)
{
os.Close();
}
HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
return sr.ReadToEnd().Trim();
}
必要なログイン情報をログイン ページにポストした後、次のページで get リクエストを実行し、そこでデータを解析できます。
private static string PerformGetRequest(string uri, CookieContainer cookieJar)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "GET";
request.CookieContainer = cookieJar;
HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(webResponse.GetResponseStream());
return sr.ReadToEnd().Trim();
}