snoegler
asked on
RFC 2068
Does anyone have a good link to a short, but precise
description of the HTTP 1.1 protocol? I have already found
a *huge* description which is describes even the smallest
eventualities(about 390k size).
Links are greatly appreciated :)
description of the HTTP 1.1 protocol? I have already found
a *huge* description which is describes even the smallest
eventualities(about 390k size).
Links are greatly appreciated :)
ASKER
I think this is my fault ... I am searching for a page which describes the HTTP 1.1 protocol
commands - this is for automated queries from a internet database. So i need some
good documentation - as i've already mentioned, i have found one, but it is so large and
full of details that it is not readable, at least not on the monitor ...
Thanks for your time, BTW.
commands - this is for automated queries from a internet database. So i need some
good documentation - as i've already mentioned, i have found one, but it is so large and
full of details that it is not readable, at least not on the monitor ...
Thanks for your time, BTW.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
This is just a note ... :)
BOOL GetUniversalName( char szUniv[], char szDrive[] )
{
// get the local drive letter
char chLocal = (char)toupper( szDrive[0] );
// cursory validation
if ( chLocal < 'A' || chLocal > 'Z' )
return FALSE;
if ( szDrive[1] != ':' || szDrive[2] != '\\' )
return FALSE;
HANDLE hEnum;
DWORD dwResult = WNetOpenEnum( RESOURCE_CONNECTED, RESOURCETYPE_DISK, 0, NULL, &hEnum );
if ( dwResult != NO_ERROR )
return FALSE;
// request all available entries
const int c_cEntries = 0xFFFFFFFF;
// start with a reasonable buffer size
DWORD cbBuffer = 50 * sizeof( NETRESOURCE );
NETRESOURCE *pNetResource = (NETRESOURCE*) malloc( cbBuffer );
BOOL fResult = FALSE;
while ( TRUE )
{
DWORD dwSize = cbBuffer,
cEntries = c_cEntries;
dwResult = WNetEnumResource( hEnum, &cEntries, pNetResource, &dwSize );
if ( dwResult == ERROR_MORE_DATA )
{
// the buffer was too small, enlarge
cbBuffer = dwSize;
pNetResource = (NETRESOURCE*) realloc( pNetResource, cbBuffer );
continue;
}
if ( dwResult != NO_ERROR )
goto done;
// search for the specified drive letter
for ( int i = 0; i < (int) cEntries; i++ )
if ( pNetResource[i].lpLocalNam e &&
chLocal == toupper(pNetResource[i].lp LocalName[ 0]) )
{
// match
fResult = TRUE;
// build a UNC name
strcpy( szUniv, pNetResource[i].lpRemoteNa me );
strcat( szUniv, szDrive + 2 );
//_strupr( szUniv );
goto done;
}
}
done:
// cleanup
WNetCloseEnum( hEnum );
free( pNetResource );
return fResult;
}
BOOL GetUniversalName( char szUniv[], char szDrive[] )
{
// get the local drive letter
char chLocal = (char)toupper( szDrive[0] );
// cursory validation
if ( chLocal < 'A' || chLocal > 'Z' )
return FALSE;
if ( szDrive[1] != ':' || szDrive[2] != '\\' )
return FALSE;
HANDLE hEnum;
DWORD dwResult = WNetOpenEnum( RESOURCE_CONNECTED, RESOURCETYPE_DISK, 0, NULL, &hEnum );
if ( dwResult != NO_ERROR )
return FALSE;
// request all available entries
const int c_cEntries = 0xFFFFFFFF;
// start with a reasonable buffer size
DWORD cbBuffer = 50 * sizeof( NETRESOURCE );
NETRESOURCE *pNetResource = (NETRESOURCE*) malloc( cbBuffer );
BOOL fResult = FALSE;
while ( TRUE )
{
DWORD dwSize = cbBuffer,
cEntries = c_cEntries;
dwResult = WNetEnumResource( hEnum, &cEntries, pNetResource, &dwSize );
if ( dwResult == ERROR_MORE_DATA )
{
// the buffer was too small, enlarge
cbBuffer = dwSize;
pNetResource = (NETRESOURCE*) realloc( pNetResource, cbBuffer );
continue;
}
if ( dwResult != NO_ERROR )
goto done;
// search for the specified drive letter
for ( int i = 0; i < (int) cEntries; i++ )
if ( pNetResource[i].lpLocalNam
chLocal == toupper(pNetResource[i].lp
{
// match
fResult = TRUE;
// build a UNC name
strcpy( szUniv, pNetResource[i].lpRemoteNa
strcat( szUniv, szDrive + 2 );
//_strupr( szUniv );
goto done;
}
}
done:
// cleanup
WNetCloseEnum( hEnum );
free( pNetResource );
return fResult;
}
http://interspeed.net/http11.html#2