Страница 1 из 1

Опять проблемы с авторизацией на сайте

Добавлено: 23 янв 2005, 16:42
pominub
Такая ситуация:
Допустим я хочу просто зайти в почту на яндексе.
Делаю так:

Код: Выделить всё

bool ok = false;

	// инициализируем WinInet
	HINTERNET hInternet =
		::InternetOpen(
			TEXT("WinInet Test"),
			INTERNET_OPEN_TYPE_PRECONFIG,
			NULL,NULL,
			0);

	if (hInternet != NULL) {
		// открываем HTTP сессию
		HINTERNET hConnect = 
			::InternetConnect(
				hInternet,
				TEXT("www.mail.yandex.ru"),
				INTERNET_DEFAULT_HTTP_PORT,
				"Petya","222222",// Логин и пароль
				INTERNET_SERVICE_HTTP,
				0,
				1u);

		if (hConnect != NULL) {
			// открываем запрос
			HINTERNET hRequest = 
				::HttpOpenRequest(
					hConnect,
					TEXT("POST"),
				                TEXT(""),
					NULL,
					NULL,
					0,
					INTERNET_FLAG_KEEP_CONNECTION,
					1);

			if (hRequest != NULL) {
				// посылаем запрос
				BOOL bSend = ::HttpSendRequest(hRequest, NULL,0, NULL,0);
				if (bSend) {
					// создаём выходной файл
					ofstream mail("mail.html",ios::out|ios::binary);
					if (mail.is_open()) for (;;) {
						// читаем данные
						char  szData[1024];
						DWORD dwBytesRead;
						BOOL bRead = 
							::InternetReadFile(
								hRequest,
								szData,sizeof(szData)-1,
								&dwBytesRead);

						// выход из цикла при ошибке или завершении
						if (bRead == FALSE  ||  dwBytesRead == 0)
							break;

						// сохраняем результат
						szData[dwBytesRead] = 0;
						fnews << szData;

						ok = true;
					}
				}

				// закрываем запрос
				::InternetCloseHandle(hRequest);
			}

			// закрываем сессию
			::InternetCloseHandle(hConnect);
		}
		
		// закрываем WinInet
		::InternetCloseHandle(hInternet);
	}

	// запускаем  считанную страничку
	if (ok)
		system("start mail.html");

	return 0;
Но почему-то читается страница авторизации.
(Просят ввести логин и пароль).
Получается логин и пароль не отсылаются.
Почему так происходит? Что я не так делаю?
:( Спасибо...

Добавлено: 24 янв 2005, 02:27
AiK
Тебе нужно передавать пару login -pwd при каждом обращении. Они передаются либо через куки, либо в другом заголовке -credentials.