블로그 내에서 비슷한 글 링크 : http://www.npteam.net/447
WinInet이 서버당 연결 수를 제한한다. 따라서 HttpSendRequest 및 InternetOpenURL 의 함수를 호출할 경우에는 윈도우에 설정된 레지스트리 기본값이 2개로 되어 있다.
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MaxConnectionsPer1_0Server"= dword:00000064
"MaxConnectionsPerServer"= dword:00000064
MaxConnectionsPerServer REG_DWORD(기본값 2) [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MaxConnectionsPer1_0Server"= dword:00000064
"MaxConnectionsPerServer"= dword:00000064
단일 HTTP 1.1 서버에 대한 동시 요청 수를 설정합니다.
MaxConnectionsPer1_0Server REG_DWORD(기본값 4)
단일 HTTP 1.0 서버에 대한 동시 요청 수를 설정합니다.
#include "AFXINET.H"
CInternetSession* pSession = NULL;
CStdioFile* pFile = NULL;
TCHAR szError[1024] = {0};
TRY
{
pSession = new CInternetSession;
pFile = pSession->OpenURL( "http://www.devpia.com" );
}
CATCH( CInternetException, pEx )
{
pEx->GetErrorMessage( szError, 1024 );
}
END_CATCH
if( pFile != NULL )
{
//여기서 웹페이지 내용을 가지고 처리
//HTTP를 호출했을 시
CHttpFile* pHttpFile = (CHttpFile*)pFile;
/*원하는 코드를 실행한다.*/
// pHttpFile->ReadString(CString DataType);
delete pHttpFile;
pHttpFile = NULL;
pFile = NULL;
}
if( pSession != NULL )
{
//pSession->Close(); //CInternetSession 소멸자가 알아서 호출함
delete pSession;
pSession = NULL;
}
/*
파라미터를 GET 방식으로 넘기시려면 ...
CInternetSession::OpenURL()로 접속할 URL과 파라미터 넘겨주면,
CStdioFile 포인터를 넘겨 주거든요. 그냥 파일 처럼 처리하시면 되겠네요.
OpenURL("http://localhost/test.asp?name=하나")
이런 식으로 처리하실 수 있습니다
파라미터를 POST 방식으로 넘기시려면 ...
CInternetSession::GetHttpConnection()으로 HTTP 커넥션 맺어 주시고,
CHttpConnection::OpenRequest()로 URL에 접속해서,
CHttpFile::AddRequestHeaders()로 헤더와 POST 정보를 추가해서 ...
CHttpFile::SendRequest()로 데이터 날려 주시면 됩니다.
*/
CInternetSession* pSession = NULL;
CStdioFile* pFile = NULL;
TCHAR szError[1024] = {0};
TRY
{
pSession = new CInternetSession;
pFile = pSession->OpenURL( "http://www.devpia.com" );
}
CATCH( CInternetException, pEx )
{
pEx->GetErrorMessage( szError, 1024 );
}
END_CATCH
if( pFile != NULL )
{
//여기서 웹페이지 내용을 가지고 처리
//HTTP를 호출했을 시
CHttpFile* pHttpFile = (CHttpFile*)pFile;
/*원하는 코드를 실행한다.*/
// pHttpFile->ReadString(CString DataType);
delete pHttpFile;
pHttpFile = NULL;
pFile = NULL;
}
if( pSession != NULL )
{
//pSession->Close(); //CInternetSession 소멸자가 알아서 호출함
delete pSession;
pSession = NULL;
}
/*
파라미터를 GET 방식으로 넘기시려면 ...
CInternetSession::OpenURL()로 접속할 URL과 파라미터 넘겨주면,
CStdioFile 포인터를 넘겨 주거든요. 그냥 파일 처럼 처리하시면 되겠네요.
OpenURL("http://localhost/test.asp?name=하나")
이런 식으로 처리하실 수 있습니다
파라미터를 POST 방식으로 넘기시려면 ...
CInternetSession::GetHttpConnection()으로 HTTP 커넥션 맺어 주시고,
CHttpConnection::OpenRequest()로 URL에 접속해서,
CHttpFile::AddRequestHeaders()로 헤더와 POST 정보를 추가해서 ...
CHttpFile::SendRequest()로 데이터 날려 주시면 됩니다.
*/
덧글을 달아 주세요
너무좋아 2009/11/06 14:06 고유주소 고치기 답하기
예제 잘 봤습니다.