출처 : http://prologue.blog.naver.com/PostView.nhn?blogId=nkj2001&logNo=20071492467&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView

 

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
Posted by 꼬장e
,

그림처럼 대체(fallback)위치 에 두개항목 true 로 변경

 

대체 위치를 지정하면 지정된곳으로 그렇지 않으면 temp 폴더에 생성됨.


 

 

'C/C++' 카테고리의 다른 글

GetHttpConnection https post 데이터 날리기  (0) 2020.08.09
Posted by 꼬장e
,