class CDownloadFile
Класс CDownloadFile — обёртка для скачивания веб-контента через Windows API WinInet
Сообщите нам, если считаете, что материал размещён без разрешения.
Обращение по товару «cdownloadfile.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
CDownloadFile — это библиотека на языке MQL для скачивания содержимого веб-страниц. Она использует Windows API WinInet через импорт функций из wininet.dll для установления HTTP-соединений и получения данных по указанному URL.
Основной метод GrabWeb принимает URL и строковый параметр для хранения результата. Метод открывает соединение с сервером, читает данные порциями фиксированного размера, накапливает их в строке и возвращает логический результат успешности операции.
Библиотека поддерживает режим отладки для вывода промежуточных данных, а также различные типы подключений: прямое, через предварительную конфигурацию Internet Explorer и через прокси-сервер. Конструктор задаёт начальные значения параметров типов подключения и размера буфера чтения.
Классов: 1 · методов: 1 · конструкторов: 1 · деструкторов: 0 · отдельных функций: 0
class CDownloadFile
Класс CDownloadFile — обёртка для скачивания веб-контента через Windows API WinInet
CDownloadFile()
Конструктор CDownloadFile — создание экземпляра с инициализацией параметров подключения и буфера
bool GrabWeb(string strUrl, string& strWebPage)
GrabWeb — скачивание содержимого веб-страницы по указанному URL в строковый параметр
#property strict
#import "wininet.dll"
#define INTERNET_FLAG_PRAGMA_NOCACHE 0x00000100 // Forces the request to be resolved by the origin server, even if a cached copy exists on the proxy.
#define INTERNET_FLAG_NO_CACHE_WRITE 0x04000000 // Does not add the returned entity to the cache.
#define INTERNET_FLAG_RELOAD 0x80000000 // Forces a download of the requested file, object, or directory listing from the origin server, not from the cache.
int InternetOpenA(
uchar & sAgent[],
int lAccessType,
uchar & sProxyName[],
uchar & sProxyBypass[],
int lFlags=0
);
int InternetOpenUrlA(
int hInternetSession,
uchar & sUrl[],
uchar & sHeaders[],
int lHeadersLength=0,
int lFlags=0,
int lContext=0
);
int InternetReadFile(
int hFile,
uchar & sBuffer[],
int lNumBytesToRead,
int& lNumberOfBytesRead[]
);
int InternetCloseHandle(
int hInet
);
#import
class CDownloadFile
{
private:
bool _winInetDebug;
int _hSession_IEType;
int _hSession_Direct;
int _Internet_Open_Type_Preconfig;
int _Internet_Open_Type_Direct;
int _Internet_Open_Type_Proxy;
int _Buffer_LEN;
int InternetOpenAFIX(
string sAgent,
int lAccessType,
string sProxyName="",
string sProxyBypass="",
int lFlags=0
)
{
uchar sAgentFIX[], sProxyNameFIX[], sProxyBypassFIX[];
StringToCharArray(sAgent, sAgentFIX);
StringToCharArray(sProxyName, sProxyNameFIX);
StringToCharArray(sProxyBypass, sProxyBypassFIX);
return(InternetOpenA(sAgentFIX,lAccessType,sProxyNameFIX,sProxyBypassFIX,lFlags));
}
int InternetOpenUrlAFIX(
int hInternetSession,
string sUrl,
string sHeaders="",
int lHeadersLength=0,
int lFlags=0,
int lContext=0
)
{
uchar sUrlFIX[], sHeadersFIX[];
StringToCharArray(sUrl, sUrlFIX);
StringToCharArray(sHeaders, sHeadersFIX);
return(InternetOpenUrlA(hInternetSession,sUrlFIX,sHeadersFIX,lHeadersLength,lFlags,lContext));
}
int InternetReadFileFIX(
int hFile,
string &sBuffer,
int lNumBytesToRead,
int& lNumberOfBytesRead[]
)
{
uchar sBufferFIX[];
ArrayResize(sBufferFIX,lNumBytesToRead);
int result=InternetReadFile(hFile,sBufferFIX,lNumBytesToRead,lNumberOfBytesRead);
sBuffer=CharArrayToString(sBufferFПоказано первые 50% кода (символов: 3471)
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.