1. Как сделать, чтобы код на vc++ ниже, скачивающий страницу, добавлял в заголовок запроса такую куку из джава скрипта? т.е. чтобы сервер опряделял, что у меня есть поддержка кук и читал эту куку... и ещё есть ли в с++ библиотека на подобии как в perl LWP::UserAgentLWP cookie_jar, чтобы когда я запрашиваю страницу у меня определялось, что куки включены и также сохранялись там куки с запрашиваемой страницы. Если это нельзя сделать с помощью WinInet, то буду благодарен за код на сокетах 2. как сделать чтобы тянуть не всю страницу, а только http заголовок? <script language="javascript" type="text/javascript"> <!-- document.cookie='roton=MnwwfDExODM4ODExMDR8MTE4Mzg4MTEwNHwwO2Jvb2ttYXJrfG5vcmVmX2lu; expires=Mon, 09 Jul 2007 07:51:44 GMT; path=/;'; document.cookie='fav=1183881104; expires=Mon, 07 Jul 2008 07:51:44 GMT; path=/;'; //--> </script> Code: #include "stdafx.h" #include <windows.h> #include <wininet.h> #pragma comment(lib,"wininet") #include <stdlib.h> #include <fstream.h> int main(int argc, char* argv[]) { bool ok = false; HINTERNET hInternet = ::InternetOpen( TEXT("WinInet Test"), INTERNET_OPEN_TYPE_PRECONFIG, NULL,NULL, 0); if (hInternet != NULL) { HINTERNET hConnect = ::InternetConnect( hInternet, TEXT("www.site.com"), INTERNET_DEFAULT_HTTP_PORT, NULL,NULL, INTERNET_SERVICE_HTTP, 0, 1u); if (hConnect != NULL) { HINTERNET hRequest = ::HttpOpenRequest( hConnect, TEXT("GET"), TEXT("cgi-bin/infomy.cgi"), NULL, NULL, 0, INTERNET_FLAG_KEEP_CONNECTION, 1); if (hRequest != NULL) { BOOL bSend = ::HttpSendRequest(hRequest, NULL,0, NULL,0); if (bSend) { ofstream fnews("mp3.htm",ios::out|ios::binary); if (fnews.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); } ::InternetCloseHandle(hInternet); } if (ok) system("start mp3.htm"); return 0; }
кука не читается, добавляю в ф-и httpsendrequest дополнительные заголовки и читаю на сервере $env{HTTP_COOKIE}, так вот она пустая, Accept-language читается нормально. char* header ="Cookie: test=12345\r\nAccept-language: en-us\r\n"; BOOL bSend = ::HttpSendRequest(hRequest, header,44, NULL,0); да кстате как прочитать куки из страницы, которую я загружаю?
roton=MnwwfDExODM4ODExMDR8MTE4Mzg4MTEwNHwwO2Jvb2ttYXJrfG5vcmVmX2lu; expires=Mon, 09 Jul 2007 07:51:44 GMT; path=/; fav=1183881104; expires=Mon, 07 Jul 2008 07:51:44 GMT; path=/; Как вытащить этот текст из страницы без регулярных выражений? document.cookie='текст1'; document.cookie='текст2'; текст1=roton=MnwwfDExODM4ODExMDR8MTE4Mzg4MTEwNHwwO2Jvb2ttYXJrfG5vcmVmX2lu; expires=Mon, 09 Jul 2007 07:51:44 GMT; path=/; текст2=fav=1183881104; expires=Mon, 07 Jul 2008 07:51:44 GMT; path=/;