работа с куками

  • Автор темы Satell
  • Дата начала
S

Satell

#1
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>

Код:
#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;
}
 
S

Satell

#2
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=/;