Sonu gelmeyen idHttp.Get

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Sonu gelmeyen idHttp.Get

Mesaj gönderen sabanakman »

İyi günler. Indy IdHttp ile dosya indirmeye çalışırken çok ilginç bir sıkıntıyla karşılaştım. Mesela "http://download.microsoft.com/download/ ... QLEXPR.EXE" dosyasını

Kod: Tümünü seç

var fs:TFileStream; d,w:String;
begin
  try
    d:='C:\Yol\SQLEXPR.EXE';w:='http://download.microsoft.com/download/8/4/D/84DFA98B-CA99-4D53-81C5-CECFF9D20A38/SQLEXPR.EXE';
    fs:=TFileStream.Create(d,fmCreate or fmShareDenyNone);
    IdHTTP.Get(w, fs);
  finally
    fs.Free;
  end;
end;
şeklinde indirmeye çalışmaktayım fakat dosyanın sonu hiç gelmiyor, indirme işlemi (VCL tarafından) sonsuz bir döngüye takılıyor (XE5, Delphi2005 ve Delphi7 üzerinden Indy9 ve Indy10 ile denendi hepsi aynı). Maalesef kedi açımdan gün içinde çok ince çalışma yapabilme ortamı yakalamam imkansız olduğu için böylesi bir inceleme yapabilmem hafta sonuna kaldı ama böylesi bir durum hakkında bilgisi olan tecrübeli bir arkadaşlar varsa da tecrübesinden faydalanmak çok makbule geçecektir :mrgreen: . İyi çalışmalar.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Sonu gelmeyen idHttp.Get

Mesaj gönderen SimaWB »

Win 7'de Delphi XE ile denedim sıkıntı yok. Beklendiği gibi indirme işlemi gerçekleşti. :shock:
There's no place like 127.0.0.1
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Sonu gelmeyen idHttp.Get

Mesaj gönderen sabanakman »

Muhtemelen Indy versiyonu ile alakalı diye tahmin etmekteyim. Tam olarak IdHTTP1.Version değeri nedir acep.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Sonu gelmeyen idHttp.Get

Mesaj gönderen SimaWB »

10.5.7
There's no place like 127.0.0.1
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Sonu gelmeyen idHttp.Get

Mesaj gönderen mrmarman »

Şöyle takip eder misiniz ? Forma bir tane IdHttp koyup iki eventini de aşağıdaki gibi kodlayıp gözlemleyin. Belki de arkada işlmin bitmesini beklerken donup kalmış gibi bir izlenim vermiştir.

Denediğim TEST Ortamı : XE5 Update 2

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  fs:TFileStream;
  d,w:String;
begin
  try
    d:='d:\SQLEXPR.EXE';
    w:='http://download.microsoft.com/download/8/4/D/84DFA98B-CA99-4D53-81C5-CECFF9D20A38/SQLEXPR.EXE';
    fs:=TFileStream.Create(d,fmCreate or fmShareDenyNone);
    IdHTTP1.Get(w, fs);
  finally
    fs.Free;
  end;
  ShowMessage('OK');
end;

procedure TForm1.IdHTTP1Status(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: string);
begin
  Caption := AStatusText;
end;

Var
  xMax : Int64;

procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
  Caption := Format('%d/%d (%%%d)', [aWorkCount, xMax, (100 *  aWorkCount) div xMax ]);
end;

procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64);
begin
  xMax := AWorkCountMax;

end;

procedure TForm1.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
  ShowMessage('işlem sonu...');
end;
Resim
Resim ....Resim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Sonu gelmeyen idHttp.Get

Mesaj gönderen sabanakman »

İlginçtir, örnek kodunuzu göremeden farklı bir yol denedim problem çıkmadı. Önce sanal bir windows 7 üzerinde denedim sorun yaşamadım. Acep güvenlik duvarı mıdır dedim Norton Internet Security'i az biraz kurcaladıktan sonra yine sıkıntı çıkmadı. Sanırım çalışmasının ortalarında Norton'a takıldı. Beni yanıltan nokta WorkBegin olayının çalışmasından sonra program normal çalışıyor gibi düşündüm ondan sıkıntı oldu sanırım :mrgreen: . Herkeslere teşekkürler ve de iyi çalışmalar :D .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla