보물창고/Programming2012.03.05 23:55









C# 프로그램에서 웹 사이트 POST 쿠키 로그인 방법 (콘솔 홈페이지 cookie 포스트 전달 저장)

C#으로 프로그램에서 웹에 POST로 로그인 하면서 쿠키 값을 받아오고
다른 페이지 정보를 읽을 때 받은 쿠키값을 전달하면서 사이트에 로그인한 상태로 접근 하는 방법 입니다


프로그램 구조
로그인하면서 쿠키 얻고 -> 얻은 쿠키로 원하는 페이지 열고 -> 열린 페이지의 html을 C:\Text.txt 파일로 저장 합니다





C#을 공부하는 중 막무가네 코딩을 했습니다
(당장에 필요한 프로그램을 만들어보면서 동기 부여와 성취감을 위해서 입니다)

모든 매서드 들이 static이 붙어 있는데
C# 객체 지향 프로그램을 이해 못한 관계로 어떤 방식으로 알아봐야 겠습니다






using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Net;

using System.IO;

 

namespace  

{

    class Program

    {

 

        static string bufferint ="";

        static void Main(string[] args)

        {

         //   Console.WriteLine(mainLogin());

 

            saveFile(loginImageURL(mainLogin()));

        }

 

        //페이지 로그인 하면서 쿠키를 받아롬

        static HttpWebResponse mainLogin()

        {

            HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.huyang.go.kr/user/member/User_memberLoginPrc.action");

            req.Method = "Post";

            string s = "userId=여기에 아이디를 적으세요&userPass=여기에 비밀번호를 적으세요"; //input테그 목록을 참조해서 바꿈

            req.CookieContainer = new CookieContainer();

            req.ContentLength = s.Length;

            req.ContentType = "application/x-www-form-urlencoded; charset=utf-8";

            TextWriter w = (TextWriter)new System.IO.StreamWriter(req.GetRequestStream());

            w.Write(s);

            w.Close();

            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

            TextReader r = (TextReader)new StreamReader(resp.GetResponseStream(), Encoding.GetEncoding("EUC-KR"));

            //      Console.WriteLine(r.ReadToEnd());

            Console.WriteLine("로그인 성공");

 

            return resp;

        }

 

 

        static string loginImageURL(HttpWebResponse resp)

        {

            string htmlBuffer = "";

            HttpWebResponse respBuffer = resp;

            respBuffer = resp;

            Console.WriteLine("페이지 로드중");

            bufferint = "http://www.huyang.go.kr/user/reservation/User_reservationSearch.action";

            //로그인 (사용자 인증 후에 할 일)

            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(bufferint);

            //세션 쿠키 유지

            req.CookieContainer = new CookieContainer();

            req.CookieContainer.Add(respBuffer.Cookies);

            respBuffer = (HttpWebResponse)req.GetResponse();

            TextReader r = (TextReader)new StreamReader(respBuffer.GetResponseStream(), Encoding.GetEncoding("EUC-KR"));

            // Console.WriteLine(r.ReadToEnd());

 

            htmlBuffer = r.ReadToEnd();

            return htmlBuffer;

        }

 

        static private void saveFile(string r)

        {

            //파일 저장 하는 구간

            try

            {

                //Pass the filepath and filename to the StreamWriter Constructor

                StreamWriter sw = new StreamWriter("C:\\Test.txt");

 

                //Write a line of text

                sw.WriteLine(r);

                //Close the file

                sw.Close();

            }

            catch (Exception e)

            {

                Console.WriteLine("Exception: " + e.Message);

            }

            finally

            {

                Console.WriteLine("Executing finally block.");

            }

        }

    }

}

 


 
 

 프로젝트 전체 파일 다운 로드

휴향림 로그인.zip



 

저작자 표시
신고





Posted by 파란물
보물창고/Programming2012.02.17 16:28








웹 프로젝트 테스트 입니다
Javascript cookie HTML 이용 웹 프로그래밍 연습 [저장, 삭제, 읽어오기]
첫 페이지에서 내용을 입력 받아 쿠키에 저장후 다시 페이지로 돌아와 쿠키 내용으로 페이지를 대체 하는 구성 입니다

index.html 페이지에서 정보를 입력 받아 cookie.html 로가서 쿠키에 저장하고
다시 index.html 페이지로 와서 저장된 쿠키의 내용을 페이지에 출력 합니다 





입력하는 폼




입력된 폼





입력후 submit를 누르면 쿠키를 저장하는 페이지로 가고 1초 후 되돌아 옴



다시 되돌아온 페이지에 저장된 쿠키의 내용을 가져와 출력



cookieTest.zip




소스 코드 보기

더보기



신고





Posted by 파란물

티스토리 툴바