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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2019, 03:29   #1
HasLogos
Новичок
Джуниор
 
Регистрация: 08.08.2019
Сообщений: 1
По умолчанию Не работает код по скачке файла из интернета

Приветствую!
Извиняюсь, если пишу не туда
Использую компонент idHTTP для скачки файла из интернета.
Накидал процедуру по собственно скачке, проблема в том, что файл не скачивается:

Код:
procedure TfmCER_Downloader.bDownloadFilesClick(Sender: TObject);
var
  LoadStream: TMemoryStream;
  // Переменные для адресов сертификатов
  KornCertGolUC: widestring;  // Корневой сертификат Головного Удостоверяющего центра
  SpisAnulCertGolUC: widestring; //  Список аннулированных сертификатов Головного Удостоверяющего центра
  KornSertUCGAS: widestring; // Корневой сертификат Удостоверяющего центра ГАС «Правосудие»
  SpisAnulCertUCGAS: widestring; // Список аннулированных сертификатов Удостоверяющего центра ГАС «Правосудие»
  FullSpisUC: widestring; //  полный список УЦS
  LogFile: TextFile;
begin
  if edFolderPath.Text='' then
  begin
    MessageDlg('Не выбрана папка для сохранения CRL-ок!', mtWarning, [mbOK], 0);
    exit;
  end;

  KornCertGolUC:='https://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=4BC6DC14D97010C41A26E058AD851F81C842415A';
  SpisAnulCertGolUC:='http://rostelecom.ru/cdp/guc_gost12.crl';
  KornSertUCGAS:='http://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=8B51E9AE2FAC75DD5257EA9251BA6B7C9555095E';
  SpisAnulCertUCGAS:='http://reg1.sudrf.ru/CDP/4efd611cd8b8abe6ff127012b58d22b91061086c.crl';
  FullSpisUC:='https://e-trust.gosuslugi.ru/CA/DownloadTSL?schemaVersion=0';

  try
      begin
                  // Скачать без прокси
                  if chbUseProxy.Checked=false then
                  begin
                     // Предварительный сброс прокси
                      idHTTP.ProxyParams.Clear;
                     //1
                     LoadStream:=TMemoryStream.Create;
                     idHTTP.Get(KornCertGolUC, LoadStream);
                     LoadStream.SaveToFile(trim(edFolderPath.Text) + '4BC6DC14D97010C41A26E058AD851F81C842415A.cer');
                     LoadStream.Free;


                  end
                  else
                    // Скачать с прокси
                    begin
                      // Предварительная настройка прокси
                      idHTTP.ProxyParams.ProxyServer:=trim(edProxyIP.Text);
                      idHTTP.ProxyParams.ProxyPort:=StrToInt(trim(edProxyPort.Text));
                      idHTTP.ProxyParams.ProxyUsername:=trim(edProxyUser.Text);
                      idHTTP.ProxyParams.ProxyPassword:=trim(edProxyPassword.Text);
                      idHTTP.ProxyParams.BasicAuthentication:=chbProxyBasicAuth.Checked;
                // Собственно скачка с проксиком
                      //1
                     LoadStream:=TMemoryStream.Create;
                     idHTTP.Get(KornCertGolUC, LoadStream);
                     LoadStream.SaveToFile(trim(edFolderPath.Text) + '4BC6DC14D97010C41A26E058AD851F81C842415A.cer');
                     LoadStream.Free;

                end;
                // прописываем в лог успех операции
                if FileExists(ExtractFilePath(ParamStr(0)) + '\log.log') then
                begin
                  AssignFile(LogFile, ExtractFilePath(ParamStr(0)) + '\log.log');
                  Append(LogFile);
                  WriteLn(LogFile, DateToStr(Now) + ' ' + TimeToStr(Now) + ': ' +
'Загрузка CRL-сертификатов прошла успешно!');
                  CloseFile(LogFile);
                end
              else
                begin
                   AssignFile(LogFile, ExtractFilePath(ParamStr(0)) + '\log.log');
                   Rewrite (LogFile);
                   WriteLn(LogFile, DateToStr(Now) + ' ' + TimeToStr(Now) + ': ' +
'Загрузка CRL-сертификатов прошла успешно!');
                   CloseFile(LogFile);
                end;
      end;
  except
      on E: exception do
      begin
                //Вставляем строчку об ошибке в лог
                    if FileExists(ExtractFilePath(ParamStr(0)) + '\log.log') then
                      begin
                        AssignFile(LogFile, ExtractFilePath(ParamStr(0)) + '\log.log');
                        Append(LogFile);
                        WriteLn(LogFile, DateToStr(Now) + ' ' + TimeToStr(Now) + ': ' +
'Возникла ошибка: ' + E.Message);
                        CloseFile(LogFile);
                      end
                    else
                      begin
                         AssignFile(LogFile, ExtractFilePath(ParamStr(0)) + '\log.log');
                         Rewrite (LogFile);
                         WriteLn(LogFile, DateToStr(Now) + ' ' + TimeToStr(Now) + ': ' +
'Возникла ошибка: ' + E.Message);
                         CloseFile(LogFile);
                      end;
      end;
  end;

end;
HasLogos вне форума Ответить с цитированием
Старый 08.08.2019, 09:31   #2
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

вместо idHTTP используйте этот модуль: https://pastebin.com/TN2rGBwd

Код:
var
  url : string;
  d : TWinApiDownload;
  ErrorCode : Integer;
  stream : TStream;
begin                              
  url := 'https://vod-secure.twitch.tv/0dadbe33852abef834f3_miramisu_34988620752_1255458832/chunked/0.ts';
  d := TWinApiDownload.Create;
  d.OnWorkStart := ...
  d.OnWork := ...
  d.OnWorkEnd := ...
  d.CachingEnabled := False;
  d.URL := url;
  stream := TFileStream.Create(...);
  ErrorCode := d.Download(Stream);
  Stream.Free;
  if ErrorCode <> 200 then
  ShowMessage('ошибка ' + d.ErrorCodeToMessageString(ErrorCode));
  d.Free;
  end;
у вас ссылки не прямые.
попробуйте сначала скачать какой-нибудь файл по прямой ссылке, чтобы проверить работоспособность вашего или моего кода.

Последний раз редактировалось BLACK_RAIN; 08.08.2019 в 11:23.
BLACK_RAIN вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачивание файла из интернета, не зная пути и имени файла. Скрипт Microsoft Office Excel 0 14.09.2013 22:14
Чтение файла из интернета. HosterGH Помощь студентам 0 09.12.2011 16:55
Привязка к скачке файла конкретного пользователя yan_komlev HTML и CSS 2 17.06.2011 11:21
Получение файла из Интернета Balexander Microsoft Office Excel 1 19.11.2010 15:53
Зависание при скачке файла Lauri Общие вопросы Delphi 2 11.10.2010 10:25