İdHttpWork çalışmıyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Ms_YiLDiRiM
Üye
Mesajlar: 35
Kayıt: 24 Ağu 2010 09:46
Konum: Samsun

İdHttpWork çalışmıyor

Mesaj gönderen Ms_YiLDiRiM »

Merhaba arkadaşlar,

projemde güncelleme için internetten zip dosyası indirtip, bunu cmd ile unzip ediyorum.

program çalışıyor ama dosya indirilirken gauge üzerinde indirme durumunu gösteremiyorum.

sorunun detayına indiğimde IdHTTP1WorkBegin ve IdHTTP1Work olaylarının çalışmadığını fark ettim, (showmessage ile olayları denedim çalışmadı)

sizce bunun nedeni ne olabilir.

Kod: Tümünü seç

procedure TGirisForm.Guncelle();
begin
sayfalar.activepage:='download';
dosya:=tfilestream.create(ExtractFilePath(Application.Exename)+'xxx.zip',fmcreate);
try
idhttp1.get(GUNCEL_SURUM_INDIR , dosya);
finally
.......
.......

Kod: Tümünü seç

procedure TGirisForm.VersiyonKontrol;
begin
  if GUNCEL_SURUM_NO > EXE_SURUM then
  begin
    if Application.MessageBox(PWidechar('Yeni Bir Güncelleme Mevcut, İndirilsin Mi?'+#13+'Versiyon Bilgileri;'+#13+QuotedStr(GUNCEL_SURUM_ACIKLAMA)),'Uygulamanız Güncel Değil!',MB_YESNO+MB_ICONQUESTION)=6 then
    begin try Application.ProcessMessages; guncelle(); Application.ProcessMessages; except   on E:Exception do
  begin SQLLog(fdquery1.FieldByName('user_data_kullanici').Asstring,'HATA',E.Message); raise Exception.Create('HATA: '+E.Message);
  end;  end;     girisform.show;
 SQLLog(fdquery1.FieldByName('user_data_kullanici').Asstring,'PROGRAM','Program Güncelleme Talimatı Verildi!'); end;
  end;
end;
ertank
Kıdemli Üye
Mesajlar: 1652
Kayıt: 12 Eyl 2015 12:45

Re: İdHttpWork çalışmıyor

Mesaj gönderen ertank »

Merhaba,

Kullandığınız Delphi sürümünü bilmiyorum. Kullandığınız Indy sürümünü de bilmiyorum. Kendim deneme yaptığımda sorunsuz ilgili olaylar tetiklendi ve çalıştı.

Delphi 10.3.3 ve Indy 10.6.2.0 ile test ettim. Kullandığım kod aşağıdaki gibidir

Kod: Tümünü seç

procedure TForm2.Button1Click(Sender: TObject);
var
  FS: TFileStream;
begin
  FS := TFileStream.Create('test.dat', fmCreate);
  try
    IdHTTP1.Get('http://indirilecek.dosya', FS);
  finally
    FS.Free();
  end;
end;

procedure TForm2.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
  Memo1.Lines.Add('work:' + AWorkCount.ToString());
end;

procedure TForm2.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
  Memo1.Lines.Add('work begin: ' + AWorkCountMax.ToString());
end;
Memo bileşeni içinde oluşan log kaydı da aşağıdaki şekilde oldu

Kod: Tümünü seç

work begin: 649344
work:32515
work:65283
work:98051
work:130819
work:163587
work:196355
work:229123
work:261891
work:262379
work:263791
work:275087
work:286383
work:310387
work:311799
work:323095
work:325919
work:338627
work:356983
work:358395
work:376751
work:395107
work:409227
work:410639
work:426171
work:427583
work:437467
work:438879
work:461471
work:478415
work:482651
work:484063
work:488299
work:489711
work:499595
work:516307
work:517719
work:530427
work:531839
work:555843
work:571375
work:592555
work:599615
work:602439
work:603851
work:615147
work:617971
work:627855
work:641975
work:649035
work:649344
Kendi tarafınızda IdHttp1 bileşeninin OnWork ve OnWorkBegin olaylarının gerçekten atanmış olduğunu kontrol edebilirsiniz.

Bunun haricinde indirmeye çalıştığınız sunucu dosya boyutu bilgisi vermiyor olabilir. Bu durumda ilgili olaylar tetiklenmiyor olabilir. Ancak test edecek bu şekilde bir sunucu ve üzerinde indirilebilecek dosya bilmiyorum.
Ms_YiLDiRiM
Üye
Mesajlar: 35
Kayıt: 24 Ağu 2010 09:46
Konum: Samsun

Re: İdHttpWork çalışmıyor

Mesaj gönderen Ms_YiLDiRiM »

Embarcadero® Delphi 10.3 Version 26.0.36039.7899

idhttp bileşenine ait onwork ve onworkbegin olayları tanımlı, dosya iniyor ama ilgili prosedürler çalışmıyor. ama idhttp ile indirme yapılıyor, internet üzerinden rasgele dosya indirimi yapsam da yine bu olaylar tetiklenmiyor.

daha önceden ben de kullanıyordum, bunu engelleyen bir betik olmalı bir yerlerde, ama bulamıyorum
ertank
Kıdemli Üye
Mesajlar: 1652
Kayıt: 12 Eyl 2015 12:45

Re: İdHttpWork çalışmıyor

Mesaj gönderen ertank »

Sıfır proje üzerinde denediğinizde de çalışmıyor mu?
Ben test için sıfır projede denedim çalıştı.
Ms_YiLDiRiM
Üye
Mesajlar: 35
Kayıt: 24 Ağu 2010 09:46
Konum: Samsun

Re: İdHttpWork çalışmıyor

Mesaj gönderen Ms_YiLDiRiM »

Sorunu buldum,
kullandığım IdSSLIOHandlerSocketOpenSSL yüzünden olmuş nedenini bilmiyorum ama programı tıkayan buydu.
Cevapla