Получение страницы новостей ВКонтакте?
Категория: C/C++
2012-02-16 16:43:10
- strOpt - в ней ящик и пароль прописываются;
- szData - это буфер для приема кода страницы.
code: #cpp
#include#include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { HINTERNET hInternet = ::InternetOpen( TEXT("WinInet Test"), INTERNET_OPEN_TYPE_PRECONFIG, NULL,NULL, 0); if (hInternet != NULL) { // открываем HTTP сессию HINTERNET hConnect = ::InternetConnect( hInternet, TEXT("vkontakte.ru"), INTERNET_DEFAULT_HTTP_PORT, NULL,NULL, INTERNET_SERVICE_HTTP, 0, 1u); if (hConnect != NULL) { // открываем запрос HINTERNET hRequest = ::HttpOpenRequest( hConnect, TEXT("POST"), TEXT("/login.php"), NULL, NULL, 0, INTERNET_FLAG_KEEP_CONNECTION, 1); if (hRequest != NULL) { char strOpt[] = "email=email@email.com&pass=password"; BOOL bSend; string strAdd; // Формируем заголовок strAdd = "Accept: */*"; bSend = ::HttpAddRequestHeaders(hRequest, strAdd.c_str(), strAdd.length(), HTTP_ADDREQ_FLAG_ADD); strAdd = "Content-Type: application/x-www-form-urlencoded"; bSend = ::HttpAddRequestHeaders(hRequest, strAdd.c_str(), strAdd.length(), HTTP_ADDREQ_FLAG_ADD); // посылаем запрос bSend = ::HttpSendRequest(hRequest, NULL, 0, (void*)strOpt, strlen(strOpt)); hRequest = ::HttpOpenRequest( hConnect, TEXT("GET"), TEXT("/newsfeed.php"), NULL, NULL, 0, INTERNET_FLAG_KEEP_CONNECTION, 1); bSend = ::HttpSendRequest(hRequest, NULL, 0, NULL, 0); if (bSend) { // читаем данные char szData[204800]; DWORD dwBytesRead; BOOL bRead = ::InternetReadFile( hRequest, szData,sizeof(szData)-1, &dwBytesRead); szData[dwBytesRead] = 0; if(bRead) { ofstream fnews("news.html",ios::out|ios::binary); fnews<<szData; //UpdateData(false); } else { MessageBox(NULL, "Error", "", MB_OK); //UpdateData(false); } } // закрываем запрос ::InternetCloseHandle(hRequest); } // закрываем сессию ::InternetCloseHandle(hConnect); } // закрываем WinInet ::InternetCloseHandle(hInternet); } system("start news.html"); return 0; }
автор: AkaPaul
Поделиться: