HTTPS로 웹서버와 통신하는 함수입니다.
기존 소스에서 발췌된거라 약간 손(?)봐서 사용할 수 있는 소스 입니다.
로그인이나 서버와의 세션이 유지되어야 하는 경우에는
CInternetSession 이 멤버 혹은 외부변수로 사용되어야 할겁니다.
void SendPostData(CString szURL, CString szHost, CString szPost)
{
  CInternetSession *pSession = NULL;
  CHttpConnection *pConnection = NULL;
  CHttpFile *pHttpFile = NULL;
  pSession = new CInternetSession;
  CString szHTML = _T(""); // 리턴될 HTML
  CString strHeaders = "Content-Type: application/x-www-form-urlencoded\r\n";
  strHeaders += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)\r\n";
  char szPostData[1024] = {0,};
  sprintf(szPostData, szPost);
  // HTTPS 통신을 위한 플래그 설정
  int m_secureFlags =
  INTERNET_FLAG_RELOAD|INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_ SECURE|INTERNET_FLAG_IGNORE_CERT_CN_INVALID;
  TRY
  {
  // HTTPS 는 기본적으로 443포트를 사용
  pConnection = pSession->GetHttpConnection(szHost, INTERNET_OPEN_TYPE_PRECONFIG, 443, NULL, NULL);
  pHttpFile = pConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, szURL, NULL, 0, NULL, NULL, m_secureFlags);
  BOOL bResult = pHttpFile->SendRequest(strHeaders, strHeaders.GetLength(), szPostData, strlen(szPostData));
  CString szRead = "";
  CString szHTML = "";
  // 서버가 리턴해준 문자열을 받음
  while(pHttpFile->ReadString(szRead))
    szHTML += szRead;
  pConnection->Close();
  pHttpFile->Close();
  delete pConnection;
  delete pHttpFile;
  return TRUE;
}
CATCH (CInternetException, pEx)
{
  pHttpFile->Close();
  pConnection->Close();
  delete pHttpFile;
  delete pConnection;
  return FALSE;
}
END_CATCH
return TRUE;
}
'C/C++' 카테고리의 다른 글
| [비주얼스튜디오]ipch폴더 sdf파일 처리 (0) | 2016.09.26 | 
|---|





