| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 
 |  
CString GetWebPage(int numPage, CString login, CString password, CString id, CString param )
{
	#define TAILLE_BUFFER 256
	CString url = "http://url.de.ma.page.com?p=", sRead = "";	
	HINTERNET hInternetSession, hHttpSession;
	char buffer[TAILLE_BUFFER];
	DWORD dwRead;
 
	DWORD dwSize = 20;
	LPVOID lpOutBuffer = new char[dwSize];
 
	switch (numPage){
		case 1 : url += "51"; break;
		case 2 : url += "53"; break;
		case 3 : url += "55"; break;
		case 4 : url += "57"; break;
	}
	if (id != "") url += "&id=" + id;
 
	if (param != "") url += param;
 
	url += "&login=" + login + "&password=" + password;
 
	hInternetSession = InternetOpen ("MaPage", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, NULL) ;
	if (hInternetSession)
   {
	   hHttpSession  = InternetOpenUrl( hInternetSession, url, NULL, 0, 0, 0 ) ;
	   if (!hHttpSession)
	   {
		   InternetCloseHandle (hInternetSession) ;
		   sRead = "<ERREUR>";
		}
	   else
	   {
		   //*************************************************************************************//
		   // Lecture du HEADER HTTP (en cas d'erreur de mot de passe : Content-Type: text/bad_pw 
		   //*************************************************************************************//
			sprintf((char *)lpOutBuffer,"Content-Type");
			if(!HttpQueryInfo(hHttpSession,HTTP_QUERY_CUSTOM, (LPVOID)lpOutBuffer,&dwSize,NULL))
			{
				if (GetLastError()==ERROR_HTTP_HEADER_NOT_FOUND)
				{
					// Code to handle the case where the header isn't available.
					sprintf((char *)lpOutBuffer,"");
				}		
				else
				{
					// Check for an insufficient buffer.
					if (GetLastError()==ERROR_INSUFFICIENT_BUFFER)
					{
						// Allocate the necessary buffer.
						lpOutBuffer = new char[dwSize];
 
						// Rewrite the header name in the buffer.
						//StringCchPrintfA( (LPSTR)lpOutBuffer, dwSize,"Content-Type" );
						sprintf((char *)lpOutBuffer,"Content-Type");
 
						// Retry the call.
						// goto retry;				
					}		
					else
					{
						// Error handling code.
						sprintf((char *)lpOutBuffer,"");
					}		
				}		
			}
			if (strcmp("Content-Type", (char *)lpOutBuffer)!=0) // erreur
			{
				if (strcmp("text/bad_pw", (char *)lpOutBuffer)==0)
				{
					sRead = "<BAD>";
				}
				else if (strcmp("text/ko", (char *)lpOutBuffer)==0)
				{
					sRead = "<ERROR>";
				}
				else if (strcmp("text/ok", (char *)lpOutBuffer)==0)
				{
					sRead = "<OK>";
				}
				else
				{
					sRead = "<ERROR_CONNECTION>";
				}
 
			}
			//*************************************************************************************//
 
			if (sRead=="")
			{
				while ( InternetReadFile( hHttpSession, buffer, TAILLE_BUFFER-1, &dwRead ) )
				{
					if ( dwRead == 0 )
						break;
					buffer[dwRead] = 0;
					sRead += buffer;
				}
			}
 
			InternetCloseHandle( hHttpSession );
			InternetCloseHandle (hInternetSession) ;
	   }
   }
   return sRead;
} | 
Partager