LboxWininet


  HTTPGetHeader



  
// *********************************************************
// 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;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ