Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2017, 17:32   #11
Aqel
Пользователь
 
Аватар для Aqel
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

Ндаа.. беда, беда, может в XE есть какой то дополнительный параметр для этого?
Всё намного проще, чем есть на самом деле...
Aqel вне форума Ответить с цитированием
Старый 12.10.2017, 20:05   #12
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Ну может он такой умный, что gzip на лету распаковал?
Black Fregat вне форума Ответить с цитированием
Старый 12.10.2017, 20:57   #13
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Код:
Ну может он такой умный, что gzip на лету распаковал
без этого не дает строку Content-Length, в первом примере без него, смотрите внимательнее примеры что выше, например пост #2

Вся фишка заключается в получении размера ресурса в IdHttp в XE не дает, а в D7 все нормально, gzip это для теста в получении размера ресурса.

Все заработал progressBar с gzip, в ProgressBar1.Max := AWorkcountMax; выдает нужный размер

Код:
procedure TForm1.IdHTTPWork(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
  ProgressBar1.Position := AWorkCount;
end;

procedure TForm1.IdHTTPWorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
  ProgressBar1.Position := 0;
  ProgressBar1.Max := AWorkcountMax;
end;

procedure TForm1.IdHTTPWorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
  ProgressBar1.Position := 0;
end;


//Ваш код
Function GEt_(Url:String): String;                    // Загрузка WEB в память
var
  mStream: TMemoryStream;
  IdHTTP1: TIdHTTP;
  Lst: TStrings;
  IdCompressorZLib: TIdCompressorZLib;
begin
  Result:= '';
  mStream:= TStringStream.Create;
  Lst:= TStringList.Create;
  try
    IdHTTP1:= TIdHTTP.Create(nil);
    IdCompressorZLib:= TIdCompressorZLib.Create(nil);
  { тут следует "настроить" параметры idHTTP }
    IdHTTP1.Request.Host:='mods.curse.com';
    IdHTTP1.HandleRedirects:= True;
    IdHTTP1.Request.Connection:= 'keep-alive';
    IdHTTP1.Request.Accept:= 'text/html';//,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    IdHTTP1.Request.AcceptEncoding:= 'gzip';
    IdHTTP1.Compressor:= IdCompressorZLib;
    IdHTTP1.Request.UserAgent:= 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.102 Safari/537.36';
    IdHTTP1.Request.ContentType:= 'application/x-www-form-urlencoded';
    IdHTTP1.Request.AcceptLanguage:= 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3';

//Указываем функции для IdHTTP1 в которых будет работать прогрессбар
    IdHTTP1.OnWork:= Form1.IdHTTPWork;
    IdHTTP1.OnWorkBegin:= Form1.IdHTTPWorkBegin;
    IdHTTP1.OnWorkEnd:= Form1.IdHTTPWorkEnd;
    try
      IdHTTP1.Get(URL, mStream);
      mStream.Position:= 0;
      Lst.LoadFromStream(mStream);
      Result:= Lst.Text;
    finally
      IdHTTP1.Free;
      IdCompressorZLib.Free;
    end;
  finally
    mStream.Free;
    Lst.Free;
  end;
end;

Последний раз редактировалось Aliens_wolfs; 12.10.2017 в 22:49.
Aliens_wolfs вне форума Ответить с цитированием
Старый 13.10.2017, 07:38   #14
Aqel
Пользователь
 
Аватар для Aqel
 
Регистрация: 07.05.2011
Сообщений: 24
По умолчанию

СПАСИБО - ВСЁ ЗАРАБОТАЛО!
Всё намного проще, чем есть на самом деле...
Aqel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прогрессбар bmp152 Компоненты Delphi 7 16.06.2013 23:50
Поток. Не получается создать поток. Выдает ошибки при запуске bigory Общие вопросы по Java, Java SE, Kotlin 3 23.09.2010 00:40
Добавить прогрессбар к потоку(поток в отдельном модуле, без формы) Человек_Борща Общие вопросы Delphi 2 21.05.2010 22:00
Прогрессбар... Лёка Общие вопросы Delphi 12 18.03.2010 14:41
помогите приделать прогрессбар. Mobile™ Общие вопросы Delphi 43 20.10.2009 11:10