1
현재 C# 코드 (HttpWebRequest/HttpWebResponse)를 사용하여 로그인을 시뮬레이트하려하고 있지만 html 텍스트 대신 login.aspx 웹 페이지의 html 텍스트가 사용되었습니다. 로그인 성공. 반환 된 변수 'html'은 login.aspx 웹 페이지와 정확히 동일합니다. 데이터를 전혀 게시하지 않은 것처럼 보입니다. 도와주세요. 고맙습니다. 데이브. 여기에 내가 사용하는 코드가 있습니다C# 프로그래밍 코드를 사용하여 양식 로그인을 성공적으로 시뮬레이션하지 못했습니다.
var LOGIN_URL = "http://altech.com.au/login.aspx";
HttpWebRequest webRequest = WebRequest.Create(LOGIN_URL) as HttpWebRequest;
StreamReader responseReader = new StreamReader(
webRequest.GetResponse().GetResponseStream());
string responseData = responseReader.ReadToEnd();
responseReader.Close();
string postData =String.Format(
"ctl00$ContentPlaceHolderBodyMain$txtEmail {0}&ctl00$ContentPlaceHolderBodyMain$txtPassword={1}&btnLogin=Login","myemail", "mypassword");
//have a cookie container ready to receive the forms auth cookie
CookieContainer cookies = new CookieContainer();
// now post to the login form
webRequest = WebRequest.Create(LOGIN_URL) as HttpWebRequest;
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.CookieContainer = cookies;
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 5.2; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";
// write the form values into the request message
StreamWriter requestWriter = new StreamWriter(webRequest.GetRequestStream());
requestWriter.Write(postData);
requestWriter.Close();
HttpWebResponse response2 = (HttpWebResponse)webRequest.GetResponse();
StreamReader sr2 = new StreamReader(response2.GetResponseStream(), Encoding.Default);
string html = sr2.ReadToEnd();
안녕 철, 나는 확실히 그것을 시도하고 내가 통해 얻을 수 있는지 여부를 확인합니다. 미리 감사드립니다. – user1629480
안녕 철, 나는 그것을 테스트하고 여전히 성공적으로 기록 된 응답에서 HTML을 얻을 수 없습니다. 그런데 WebUtility.UrlEncode 대신 System.Web.HttpUtility.UrlEncode를 사용합니다. – user1629480
PostData에 [viewstate]를 추가하면 내부 500 서버 오류가 발생합니다. – user1629480