Travaillant sur une apllication qui va chercher sur des infos sur le Web,
J'ai un problème au niveau de la connection avec les proxy demandant une authentification,
je n'arrive pas a établir la connection et ca fait deux jours que je planche dessus!!!

Voici mon code uniquement pour établir la connection avecproxy + authentification :
dwTyp = REG_SZ;
char ProxyName[0x100];
char ProxyPort[0x100];
char ProxyUserName[0x100];
char ProxyPassword[0x100];
dwDisp = sizeof( ProxyName );
//Chargement des variablers de la base de registre
lRes = RegQueryValueEx( hKey, NTS_REG_PUSERNAME, 0, &dwTyp, (BYTE*)&ProxyUserName, &dwDisp );
lRes = RegQueryValueEx( hKey, NTS_REG_PPASSWORD, 0, &dwTyp, (BYTE*)&ProxyPassword, &dwDisp );
lRes = RegQueryValueEx( hKey, NTS_REG_PNAME, 0, &dwTyp, (BYTE*)&ProxyName, &dwDisp );
lRes = RegQueryValueEx( hKey, NTS_REG_PPORT, 0, &dwTyp, (BYTE*)&ProxyPort, &dwDisp );
char lpszProxyName[100];
sprintf( (char *)lpszProxyName, "http=http://%s:%s", ProxyName, ProxyPort );
hSession = InternetOpen( "GetURL", INTERNET_OPEN_TYPE_PROXY, lpszProxyName, NULL, NULL );
BOOL bSend,bQuery = FALSE;
static HINTERNET hConnect,hRequest;
char charBuffer[200],getBuffer[1024];
DWORD dwRead,dwStatusCode,dwStatusSize=sizeof(dwStatusCode);
if (hSession!=NULL)
{
hSession=InternetConnect(hSession,charBuffer,INTERNET_DEFAULT_HTTP_PORT,NULL,NULL,INTERNET_SERVICE_HTTP,0,1u); //WinInet
MessageBox(NULL,"OPEN","Code of Message",MB_OK);
}
if (hSession!=NULL)
{
hRequest=HttpOpenRequest(hConnect,"GET",_T( szUrl ),NULL,NULL,0,INTERNET_FLAG_KEEP_CONNECTION,1);
MessageBox(NULL,"CONNECT","Code of Message",MB_OK);
}
if (hRequest!=NULL)
{
bSend=HttpSendRequest(hRequest,NULL,0,NULL,0);
MessageBox(NULL,"REQUEST","Code of Message",MB_OK);
}
if (bSend)
{
MessageBox(NULL,"SEND","Code of Message",MB_OK);
bQuery=HttpQueryInfo(hRequest,HTTP_QUERY_FLAG_NUMBER|HTTP_QUERY_STATUS_CODE,&dwStatusCode,&dwStatusSize,NULL);
char chQuery=static_cast<char>(bQuery);
MessageBox(NULL,&chQuery,"This is bQuery",MB_OK);
if (bQuery!=NULL) MessageBox(NULL,"QUERY","Code of Message",MB_OK); else MessageBox(NULL,"QUERY NULL","Code of Message",MB_OK);
if (chQuery!=NULL) MessageBox(NULL,&chQuery,"Code of Message",MB_OK); else MessageBox(NULL,"NULL","Code of Message",MB_OK);
switch(dwStatusCode)
{
case HTTP_STATUS_PROXY_AUTH_REQ:
{
MessageBox(NULL,"HTTP_STATUS_PROXY_AUTH_REQ","Text of Page",MB_OK);
InternetSetOption(hRequest,INTERNET_OPTION_PROXY_USERNAME,ProxyUserName,sizeof(ProxyUserName));
InternetSetOption(hRequest,INTERNET_OPTION_PROXY_PASSWORD,ProxyPassword,sizeof(ProxyPassword));
if(!(bSend=HttpSendRequest(hRequest,NULL,0,NULL,0))) MessageBox(NULL,"Proval","Text of Page",MB_OK);
break;
}
case HTTP_STATUS_DENIED:
{
MessageBox(NULL,"HTTP_STATUS_DENIED","Text of Page",MB_OK);
InternetSetOption(hRequest,INTERNET_OPTION_USERNAME,ProxyUserName,sizeof(ProxyUserName));
InternetSetOption(hRequest,INTERNET_OPTION_PASSWORD,ProxyPassword,sizeof(ProxyPassword));
bSend=HttpSendRequest(hRequest,NULL,0,NULL,0);
break;
}
default:
{
}
}
}
hUrl = InternetOpenUrl( hRequest, _T( szUrl ), NULL, NULL, INTERNET_FLAG_NO_UI | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD |INTERNET_FLAG_NO_CACHE_WRITE, NULL );
if( hUrl )
MessageBox( NULL, "OK", "OK", MB_OK );
else
MessageBox( NULL, "NOK", "NOK", MB_OK );
Delirium6