Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Снова закачка

246
02 декабря 2005 года
GIZMO
1.8K / / 30.07.2004
Пытаюсь скачать файл по ссылке:
http://download.benqmobile.com/download.jsp?file=77738

примерно так:
Код:
void __fastcall TForm1::GetBtnClick(TObject *Sender)
{
    TFileStream* fs;

   int ReadByte=0;
   int ReadBlock=0;
   int NewReadBlock=ReadBlockEd->Text.ToInt();
   bool Done=false;

   String File=FileEd->Text;
   String URL = URLEd->Text;

   IdHTTP1->Request->ProxyPassword = PasswordEd->Text;
   IdHTTP1->Request->ProxyServer = "ps.myproxy.ru";
   IdHTTP1->Request->ProxyPort = 3128;
   IdHTTP1->Request->ProxyUsername = UserEd->Text;
   IdHTTP1->Request->Referer    = URL;

   //если файл ранее уже закачивался...
   if(ini->SectionExists(URL)) {
       ReadByte = ini->ReadInteger(URL, "ReadByte", 0);
       Done = ini->ReadBool(URL, "Done", true);
       if(Done) {
           ShowMessage(String("Файл закачен полностью. Размер - ") + ReadByte + String(" байт."));
           return;
       }
       ReadBlock = ini->ReadInteger(URL, "ReadBlock", 0);
       ReadBlock = (ReadBlock == NewReadBlock)? ReadBlock:NewReadBlock;
       File      = ini->ReadString(URL, "File", 0);

       TFileStream* fs = new TFileStream(File, fmOpenWrite);
       fs->Position = ReadByte;
       IdHTTP1->Request->ContentRangeStart = ReadByte;
       IdHTTP1->Request->ContentRangeEnd = ReadByte + ReadBlock;
       IdHTTP1->Get(URL, fs);

       if(IdHTTP1->Request->ContentRangeEnd > IdHTTP1->Response->ContentRangeEnd) {
           ini->WriteInteger(URL, "ReadByte", IdHTTP1->Response->ContentLength + IdHTTP1->Response->ContentRangeStart);
           ini->WriteInteger(URL, "ReadBlock", ReadBlock);
           //ini->WriteString(URL, "File", File);
           ini->WriteInteger(URL, "Done", true);
       }
       else {
           ini->WriteInteger(URL, "ReadByte", ReadByte + ReadBlock);
           ini->WriteInteger(URL, "ReadBlock", ReadBlock);
           //ini->WriteString(URL, "File", File);
           ini->WriteInteger(URL, "Done", false);
       }

       delete fs;
   }
   else {
       TFileStream* fs = new TFileStream(File, fmCreate);

       fs->Position = ReadByte;
       IdHTTP1->Request->ContentRangeStart = ReadByte;
       IdHTTP1->Request->ContentRangeEnd = ReadByte + NewReadBlock;
       IdHTTP1->Get(URL, fs);

       if(IdHTTP1->Request->ContentRangeEnd > IdHTTP1->Response->ContentRangeEnd) {
           ini->WriteInteger(URL, "ReadByte", IdHTTP1->Response->ContentLength + IdHTTP1->Response->ContentRangeStart);
           ini->WriteInteger(URL, "ReadBlock", NewReadBlock);
           ini->WriteString(URL, "File", File);
           ini->WriteInteger(URL, "Done", true);
       }
       else {
           ini->WriteInteger(URL, "ReadByte", ReadByte + NewReadBlock);
           ini->WriteInteger(URL, "ReadBlock", NewReadBlock);
           ini->WriteString(URL, "File", File);
           ini->WriteInteger(URL, "Done", false);
       }

       delete fs;
   }
   
}


на, что он мне возвращает страничку где говорится: - "Отключи мол, файервол". Дак нет такой буквы. Если через IE, то он пытается качать сразу, никаких претензий. А?
246
02 декабря 2005 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by GIZMO
Если через IE, то он пытается качать сразу, никаких претензий. А?


IE отправляет следующий запрос:

 
Код:
GET http://download.benqmobile.com/download.jsp?file=77738 HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*
Referer: http://www.benqmobile.com/cds/frontdoor/0,2241,ua_ru_0_27442_rArNrNrNrN_variation%253A-5_pageType%253Adownloads_imagePos%253A0,00.html
Accept-Language: ru
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: download.benqmobile.com

если Я подставляю:
 
Код:
IdHTTP1->Request->Referer    = "http://www.benqmobile.com/cds/frontdoor/0,2241,ua_ru_0_27442_rArNrNrNrN_variation%253A-5_pageType%253Adownloads_imagePos%253A0,00.html";

то вываливается ошибка: " is not инвалид integer value.
2.3K
08 декабря 2005 года
ART-CODE
134 / / 15.11.2004
Пока ничего сказать не могу т.к. c IdHTTP не работал.
Набросаю тестовый проет - отвечу (1-2 дня)пока сильно занят, чтобы разбираться...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог