문제: 내 웹 스크래퍼에는 로그인한 사용자가 웹사이트의 특정 소스 코드에 액세스해야 합니다. 이 제한을 우회하려면 내 프로그램에서 로그인 기능을 어떻게 구현해야 합니까?
답변: 지정된 웹사이트(mmoinn.com/index.do?PageModule=UsersLogin)에 로그인하려면 다음 단계를 따르세요.
1. 로그인 양식에 POST 요청을 보냅니다.
로그인 자격 증명을 POST 형식으로 지정하세요.
<code class="language-csharp">string formUrl = "http://www.mmoinn.com/index.do?PageModule=UsersAction&Action=UsersLogin"; string formParams = string.Format("email_address={0}&password={1}", "您的邮箱地址", "您的密码"); WebRequest req = WebRequest.Create(formUrl); req.ContentType = "application/x-www-form-urlencoded"; req.Method = "POST"; byte[] bytes = Encoding.ASCII.GetBytes(formParams); req.ContentLength = bytes.Length; using (Stream os = req.GetRequestStream()) { os.Write(bytes, 0, bytes.Length); } WebResponse resp = req.GetResponse(); string cookieHeader = resp.Headers["Set-cookie"];</code>
2. 로그인 페이지 받기
로그인 양식에서 검색한 쿠키 헤더가 포함된 원하는 페이지에 대한 GET 요청을 만듭니다.
<code class="language-csharp">string getUrl = "登录后页面的URL"; WebRequest getRequest = WebRequest.Create(getUrl); getRequest.Headers.Add("Cookie", cookieHeader); WebResponse getResponse = getRequest.GetResponse(); using (StreamReader sr = new StreamReader(getResponse.GetResponseStream())) { string pageSource = sr.ReadToEnd(); }</code>
추가 참고사항:
로그인 POST의 응답을 확인하려면 다음 코드 줄을 추가하면 됩니다.
<code class="language-csharp">using (StreamReader sr = new StreamReader(resp.GetResponseStream())) { string pageSource = sr.ReadToEnd(); }</code>
서버의 응답을 확인하려면 pageSource 문자열을 확인하세요.
위 내용은 C#을 사용하여 프로그래밍 방식으로 웹 사이트에 로그인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!