S
Satell
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>
и ещё есть ли в с++ библиотека на подобии как в 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;
}