Q&A

  • nmHttp 사용시 쿠키 정보 처리 방법?.
nmHttp 를 사용하여

nmHttp1.Get("http://aaa.bbb.ccc?name="uuu"&passwd="ttt");

와 같이 하면 서버로 부터 쿠키가 설정 되는데

다음 연결 부터는 이 쿠키 값이 있아야 연결 가능한데

이렇게 할려면 어떻게 해야 합니까

여러분의 많은 도움 부탁드립니다.



2  COMMENTS
  • Profile
    토맛토 2001.06.22 20:12
    TNMHTTP에서 쿠키를 이용하려면 두가지 Property를 이용합니다.



    nmhttp1.get(...) 메소드 등을 이용하여 접속하시면 쿠키정보가 nmhttp1.header에 저장되어 반환됩니다. nmhttp에 cookieIn이라는 속성이 있지만 어쩐일인지 여러개의 쿠키중 한개만 반환되더군요 이 속성을 사용하지 않고 헤더를 직접 분석하는 것이 좋겠습니다.



    header 속성은 문자열로 되어 있구요 다음과 같은 형태입니다.



    HTTP/1.1 200 OK

    Server: Microsoft-IIS/5.0

    Date: Fri, 22 Jun 2001 01:41:05 GMT

    Connection: Keep-Alive

    Content-Length: 0

    Content-Type: text/html

    Set-Cookie: userID=admin; path=/

    Set-Cookie: userNo=1234; path=/

    Set-Cookie: ASPSESSIONIDGGGGQICC=ONIHEMEBLCMLJKODIBPDKMHH; path=/

    Cache-control: private



    보신바와 같이 각 요소는 줄바꿈으로 나누어 지고요 Set-Cookie: 라고 되어 있는 부분이 보이실 겁니다. 위의 예는 두개의 쿠키를 설정(userID,userNo)하였는데 ASPSESSION... 이렇게 생긴 쿠키가 하나 더 있습니다. 이것은 해당 사이트의 어플리케이션에 처음 접속하여 세션이 생길 때 세션유지를 위한 쿠키 입니다.

    이 쿠키를 다시 반환 해 주지 않으면 계속 새 값이 날라 오고 서버측에 세션이 계속 누적 될 겁니다. 하지만 다음 페이지 접속시 이 쿠키를 반환해 주면 다시 오지 않습니다.



    쿠키 뒤의 path=/ 는 잘 아시겠지만 쿠키가 적용되어야 할 경로이고요



    이렇게 받은 정보를 Header로부터 읽어 적절히 문자열 파싱으로 잘라내고서



    다음 페이지 접속시 nmhttp1.headerInfo.Cookie에 받은데로 설정하고 난 후 get메소드 등을 이용하여 접속하면 됩니다. 쿠키설정시는 ;(세미콜론으로 붙여서 보내면 되고요)



    예를 들어 위의 예에서는



    nmhttp1.headerInfo.Cookie := 'userID=admin;userNo=1234;ASPSESSIONIDGGGGQICC=ONIHEMEBLCMLJKODIBPDKMHH;';



    하고난뒤(붙이는 순서는 관계없습니다.) nmhttp1.get(...)하시면 됩니다.

    뒤에 붙인 ASPSESSIONIDGGGGQICC... 는 세션유지를 위해 필요하니까 항상 따라가도록 하시고요







    bluesea65 wrote:

    > nmHttp 를 사용하여

    > nmHttp1.Get("http://aaa.bbb.ccc?name="uuu"&passwd="ttt");

    > 와 같이 하면 서버로 부터 쿠키가 설정 되는데

    > 다음 연결 부터는 이 쿠키 값이 있아야 연결 가능한데

    > 이렇게 할려면 어떻게 해야 합니까

    > 여러분의 많은 도움 부탁드립니다.

    >

  • Profile
    ㅠbluesea65 2001.06.24 00:08
    .감사 합니다.



    아직 해보지는 않았지만 잘 될듯하네요



    다시 한 번 감사..





    토맛토 wrote:

    > TNMHTTP에서 쿠키를 이용하려면 두가지 Property를 이용합니다.

    >

    > nmhttp1.get(...) 메소드 등을 이용하여 접속하시면 쿠키정보가 nmhttp1.header에 저장되어 반환됩니다. nmhttp에 cookieIn이라는 속성이 있지만 어쩐일인지 여러개의 쿠키중 한개만 반환되더군요 이 속성을 사용하지 않고 헤더를 직접 분석하는 것이 좋겠습니다.

    >

    > header 속성은 문자열로 되어 있구요 다음과 같은 형태입니다.

    >

    > HTTP/1.1 200 OK

    > Server: Microsoft-IIS/5.0

    > Date: Fri, 22 Jun 2001 01:41:05 GMT

    > Connection: Keep-Alive

    > Content-Length: 0

    > Content-Type: text/html

    > Set-Cookie: userID=admin; path=/

    > Set-Cookie: userNo=1234; path=/

    > Set-Cookie: ASPSESSIONIDGGGGQICC=ONIHEMEBLCMLJKODIBPDKMHH; path=/

    > Cache-control: private

    >

    > 보신바와 같이 각 요소는 줄바꿈으로 나누어 지고요 Set-Cookie: 라고 되어 있는 부분이 보이실 겁니다. 위의 예는 두개의 쿠키를 설정(userID,userNo)하였는데 ASPSESSION... 이렇게 생긴 쿠키가 하나 더 있습니다. 이것은 해당 사이트의 어플리케이션에 처음 접속하여 세션이 생길 때 세션유지를 위한 쿠키 입니다.

    > 이 쿠키를 다시 반환 해 주지 않으면 계속 새 값이 날라 오고 서버측에 세션이 계속 누적 될 겁니다. 하지만 다음 페이지 접속시 이 쿠키를 반환해 주면 다시 오지 않습니다.

    >

    > 쿠키 뒤의 path=/ 는 잘 아시겠지만 쿠키가 적용되어야 할 경로이고요

    >

    > 이렇게 받은 정보를 Header로부터 읽어 적절히 문자열 파싱으로 잘라내고서

    >

    > 다음 페이지 접속시 nmhttp1.headerInfo.Cookie에 받은데로 설정하고 난 후 get메소드 등을 이용하여 접속하면 됩니다. 쿠키설정시는 ;(세미콜론으로 붙여서 보내면 되고요)

    >

    > 예를 들어 위의 예에서는

    >

    > nmhttp1.headerInfo.Cookie := 'userID=admin;userNo=1234;ASPSESSIONIDGGGGQICC=ONIHEMEBLCMLJKODIBPDKMHH;';

    >

    > 하고난뒤(붙이는 순서는 관계없습니다.) nmhttp1.get(...)하시면 됩니다.

    > 뒤에 붙인 ASPSESSIONIDGGGGQICC... 는 세션유지를 위해 필요하니까 항상 따라가도록 하시고요

    >

    >

    >

    > bluesea65 wrote:

    > > nmHttp 를 사용하여

    > > nmHttp1.Get("http://aaa.bbb.ccc?name="uuu"&passwd="ttt");

    > > 와 같이 하면 서버로 부터 쿠키가 설정 되는데

    > > 다음 연결 부터는 이 쿠키 값이 있아야 연결 가능한데

    > > 이렇게 할려면 어떻게 해야 합니까

    > > 여러분의 많은 도움 부탁드립니다.

    > >