誰もがこれが答えられたことに腹を立てる前に。私はこれを行う方法を探してWebを精査し、いくつかの方法を試しました。C#を介してWebサイトにログインし、プログラムでWebサイトにログインして画面を表示する方法を教えてください。これらは両方とも役に立ちましたが、ログインページを通過できない理由がわかりません。これが私のコードです:
string url = "https://www.advocare.com/login.aspx";
string url2 = "https://url.after.login";
HttpWebRequest wReq = WebRequest.Create(url) as HttpWebRequest;
wReq.KeepAlive = true;
wReq.Method = "POST";
wReq.AllowAutoRedirect = false;
wReq.ContentType = "application/x-www-form-urlencoded";
string postData = "ctl00$cphContent$txtUserName=Username&ctl00$cphContent$txtPassword=Password";
byte[] dataBytes = UTF8Encoding.UTF8.GetBytes(postData);
wReq.ContentLength = dataBytes.Length;
using (Stream postStream = wReq.GetRequestStream())
{
postStream.Write(dataBytes, 0, dataBytes.Length);
}
HttpWebResponse wResp = wReq.GetResponse() as HttpWebResponse;
string pageSource;
wReq = WebRequest.Create(url2) as HttpWebRequest;
wReq.CookieContainer = new CookieContainer();
wReq.CookieContainer.Add(wResp.Cookies);
HttpWebResponse wResp2 = wReq.GetResponse() as HttpWebResponse;
using (StreamReader sr = new StreamReader(wResp2.GetResponseStream()))
{
pageSource = sr.ReadToEnd();
}
pageSourceを見るたびに、login.aspxページのHTMLになります。私はここで何かが欠けているに違いありません。多分それはクッキーを取っていません、私は知りません。私が別として持っている1つの質問は、なぜこれが機能しないのかということですが、文字列postData=""にあります。それらはhtmlタグの名前またはID部分であると想定されていますか?私は困惑していて、別の方法を見つけなければならないので、これに関するどんな助けも大いに感謝されます。を使用する代わりに、WebRequest
を続行したいと思います。できないなら、まあ。助けてくれてありがとう!WebResponse
WebBrowser