|
// *********************************************************
// HTTP GET (HEADER部の取得)
// 戻り値 : true 成功, false 失敗
// *********************************************************
BOOL LboxWininet::HTTPGetHeader( LPTSTR lpTarget, LboxString *LData )
{
HINTERNET hHttp;
if ( this->hConnect == NULL ) {
return false;
}
hHttp = HttpOpenRequest(
this->hConnect,
NULL,
lpTarget,
"HTTP/1.1",
NULL,
NULL,
INTERNET_FLAG_RELOAD | INTERNET_FLAG_KEEP_CONNECTION,
0
);
if ( hHttp == NULL ) {
return false;
}
if ( !( HttpSendRequest( hHttp, NULL, 0, NULL, 0 )) ) {
InternetCloseHandle( hHttp );
return false;
}
BOOL bRet;
DWORD dwByte;
DWORD nLen;
nLen = LData->nLboxString;
dwByte = 0;
bRet = HttpQueryInfo(
hHttp,
HTTP_QUERY_RAW_HEADERS_CRLF,
LData->szLboxString,
&nLen,
&dwByte
);
if ( !bRet ) {
if ( GetLastError() == ERROR_INSUFFICIENT_BUFFER ) {
LData->Resize( nLen+1 );
nLen = LData->nLboxString;
dwByte = 0;
bRet = HttpQueryInfo(
hHttp,
HTTP_QUERY_RAW_HEADERS_CRLF,
LData->szLboxString,
&nLen,
&dwByte
);
}
}
InternetCloseHandle( hHttp );
return bRet;
}
// *********************************************************
// HTTP GET (HEADERの個別取得)
// 戻り値 : true 成功, false 失敗
// *********************************************************
BOOL LboxWininet::HTTPGetHeader(
LPTSTR lpTarget, DWORD dwInfoLevel, LboxString *LData )
{
HINTERNET hHttp;
if ( this->hConnect == NULL ) {
return false;
}
hHttp = HttpOpenRequest(
this->hConnect,
NULL,
lpTarget,
"HTTP/1.1",
NULL,
NULL,
INTERNET_FLAG_RELOAD | INTERNET_FLAG_KEEP_CONNECTION,
0
);
if ( hHttp == NULL ) {
return false;
}
if ( !( HttpSendRequest( hHttp, NULL, 0, NULL, 0 )) ) {
InternetCloseHandle( hHttp );
return false;
}
BOOL bRet;
DWORD dwByte;
DWORD nLen;
nLen = LData->nLboxString;
dwByte = 0;
bRet = HttpQueryInfo(
hHttp,
dwInfoLevel,
LData->szLboxString,
&nLen,
&dwByte
);
if ( !bRet ) {
if ( GetLastError() == ERROR_INSUFFICIENT_BUFFER ) {
LData->Resize( nLen+1 );
nLen = LData->nLboxString;
dwByte = 0;
bRet = HttpQueryInfo(
hHttp,
HTTP_QUERY_RAW_HEADERS_CRLF,
LData->szLboxString,
&nLen,
&dwByte
);
}
}
InternetCloseHandle( hHttp );
return bRet;
}
| |