블로그 이미지
키에티스트
그냥 저냥 이거 저거

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Tag cloud

Tistory Cumulus Flash tag cloud by BLUEnLIVE requires Flash Player 9 or better.

2012. 11. 13. 17:32 개발

Flag 값을 중간중간 갱신해주는게 포인트


플래그 값 하나로 막 쓰다 보니 ssl 이 안붙거나 개인 인증서라서 에러 발생


귀차나서 중간중간 값 찍어보려고 막 해놓은게 있긴 하지만 잘 작동하는 소스


    int nResult=0;

    HINTERNET   hInternet, hHttpSession, hHttpRequest;

    DWORD dwError = 0;

DWORD dwFlags = INTERNET_FLAG_SECURE |

INTERNET_FLAG_RELOAD |

INTERNET_FLAG_DONT_CACHE |

INTERNET_FLAG_NO_COOKIES;

    // set up connection

    if ( (hInternet=InternetOpen("test", INTERNET_OPEN_TYPE_PRECONFIG, 0, 0, 0)) )

    {

        // set up session

        if ( (hHttpSession=InternetConnect(hInternet, "IP_ADDR", INTERNET_DEFAULT_HTTPS_PORT, 0, 0, INTERNET_SERVICE_HTTP, 0, 0)) )

        {

            // open site

            if ( (hHttpRequest=HttpOpenRequest(hHttpSession, "POST", "/test", 0, 0, 0, dwFlags, 0)) )

            {

dwFlags = SECURITY_FLAG_IGNORE_UNKNOWN_CA |

SECURITY_FLAG_IGNORE_REVOCATION |

SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP |

SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS |

SECURITY_FLAG_IGNORE_CERT_DATE_INVALID |

SECURITY_FLAG_IGNORE_CERT_CN_INVALID;


InternetSetOption(hHttpRequest, INTERNET_OPTION_SECURITY_FLAGS, &dwFlags, sizeof(dwFlags));

dwError = GetLastError();

/*

//헤더 추가하고 포스트 작성하는 부분인데 귀차나서 주석

char szPostData[2048] = {0};

lstrcpy(szPostData, "test");


char szLen[MAX_PATH] = {0};

char szHeader[2048] = {0};


wsprintf(szLen, "%d", lstrlen(szPostData));

lstrcpy(szHeader, "Accept: text/*\r\n");

lstrcat(szHeader, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0;* Windows NT)\r\n");

lstrcat(szHeader, "Content-type: application/x-www-form-urlencoded\r\n");

lstrcat(szHeader, "Content-length: ");

lstrcat(szHeader, szLen);

lstrcat(szHeader, "\r\n\n");


dwFlags = HTTP_ADDREQ_FLAG_REPLACE | HTTP_ADDREQ_FLAG_ADD;

 HttpAddRequestHeaders(hHttpRequest, szHeader, -1L, dwFlags);

dwError = GetLastError();

*/

                // send request for login server

                if ( HttpSendRequest(hHttpRequest, 0, 0, 0, 0) )

                {

                    // TODO

                    nResult=1;

                }

else

{

dwError = GetLastError();

}

            }

else

{

dwError = GetLastError();

}

InternetCloseHandle(hHttpRequest);

        }

        InternetCloseHandle(hHttpSession);

    }

    InternetCloseHandle(hInternet);

'개발' 카테고리의 다른 글

SSL 통신을 캡처하기위한 Tomcat 구성  (1) 2012.11.14
SSL 패킷 캡처를 위한 wireshark 설정  (0) 2012.11.14
PostgreSQL ALTER TABLE  (0) 2010.11.02
posted by 키에티스트