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 |