http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=276203&ref=276203
서버-사이드 처리에서는
HTML 에서의 폼으로 알려진 객체들의 NAME 을 판단하여 처리를 합니다.
예를 들어 POST 방식의 폼에서 아이디는 USER, 비밀번호는 PASS 로 된 페이지가 있다고 합시다.
이것은 서버에
다음과 같이 보낼 것입니다.
POST /directory/filename.ext HTTP/1.0
(Header Information)
Content-Length:
Cookie:
USER=test&PASS=3(Form Information)
다음과 같이 보내집니다.
그리고 이것을 MFC 의 Wininet 클래스로 구현하자면
CInternetSession session;
CHttpConnection* pHttpConnection = NULL;
CHttpFile* pFile = NULL;
CString result;
try
{
pHttpConnection = session.GetHttpConnection("homepage address");
pFile = pHttpConnection->OpenRequest(CHttpConnection::HTTP_VERB_POST, "/fgn/fgn.php");
session.SetCookie(pFile->GetFileURL(), "c_mid", "msvisualc";
pFile->SendRequest(NULL, 0, "name=정현우", strlen("name=정현우"));
CString temp;
do
{
pFile->ReadString(temp);
result += temp + "\n";
} while(temp != "");
}
catch(CInternetException* ex)
{
ex->ReportError();
ex->Delete();
}
if(pFile != NULL)
{
delete pFile;
pFile = NULL;
}
if(pHttpConnection != NULL)
{
delete pHttpConnection;
pHttpConnection = NULL;
}
이정도로 구현할 수 있습니다.
위의 소스에는 쿠키도 저장할 수 있으며
POST 정보도 보낼 수 있습니다.
한번 해보시기 바랍니다.
아 그리고 세션 유지 여부는 잘 모르겠네요. 한번 직접 해보시는 것이 어떨까 하고 추천합니다. ^^;
P.S. 참고로 저는 간단하게 server-side 와 통신할 게 있어서 님처럼 사용하는데
wininet 로 POST 데이터가 잘 안넘어가지더군요. ^^; 그래서 그냥 직접 소켓으로 전송하고 있습니다.
저만 안되는 것일 수도 있으니까 일단 mfc 로 해보시구요. 안되면 다른 방법을 찾아봐야겠죠.
'웹, HTML' 카테고리의 다른 글
WinINet을 이용하여 HTTPS로 POST하는방법? 데브피아 (0) | 2009.07.04 |
---|---|
참조 윈아이넷 자동로그인 관련 참조. (1) | 2009.07.04 |
Discover WEB. HTTP GET-POST Utility (0) | 2009.07.04 |
자동 로그인 프로그래밍 소스 일부 - 데브피아 발췌 (1) | 2009.07.04 |
자동 로그인 만들기 비슷한 방법 참조 (0) | 2009.07.04 |
자동 로그인 주소 만들기 참조 (2) | 2009.07.04 |
IE 컨텍스트 메뉴(오른쪽 팝업) 관련 스크립트 참조 (1) | 2008.09.18 |