Web servisin oluşturduğu JPG download zaman aşımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Web servisin oluşturduğu JPG download zaman aşımı

Mesaj gönderen Salih »

Merhaba,

Çağırdığım web servisin iletilen bilgilerle hazırladığı 2 tane JPG dosyasını download etmem gerekiyor. Dosyalardan 33 K boyutunda olan her seferinde sorunsuz olarak indirilirken, 200-230 K civarında olan dosyada genellikle IdReadTimeout exception ortaya çıkıyor. Bazen de dosya sorunsuz olarak indiriliyor.

Servis sunan firma sorun olmadığını söylüyor. Zaten tarayıcıya dosya adını yazdığımda da hızlıca görüntüleniyor.

Bir şeyi atlıyor olmalıyım, ama ne ?

Bazen strStream := idhttp1.Get (F);
bazen de idHttp1.Get(F, MS); satırında takılıyor.

Bir çözüm olur mu diye
idHttp1.ReadTimeout := 10000;
idHttp1.RecvBufferSize := 250000;
idHttp1.AuthRetries := 10;
satırlarını ekledim ama nafile.

Kod: Tümünü seç

procedure BtnJpgDownloadClick(Sender: TObject);
var
  F, Filename, strstream : string;
  JPG : TJPEGImage;
  BMP : TBitmap;
  MS: TMemoryStream;
begin
  idAntifreeze1.DoProcess;
  Jpg := TJPEGImage.Create;
  idHttp1 := TIdHTTP.Create(nil);

  F := PRAdres;
  FileName := 'downxx.JPG';
  MS := TMemoryStream.Create;
  try
    idHttp1 := TIdHTTP.Create(nil);
    idHttp1.ReadTimeout := 10000;
    idHttp1.RecvBufferSize := 250000;
    idHttp1.AuthRetries := 10;
    try
      strStream := idhttp1.Get (F);
      except
       on E: EIdHTTPProtocolException do
          begin
            ShowMessage(Format('İnternet bağlantısı yok : %d ', [idhttp1.ResponseCode]));
            Exit;
          end;
       on E: EIdSocketError do
          begin
            ShowMessage('İnternet bağlantısı yok, daha sonra deneyin.');
            Exit;
          end;
       on E: EIdConnectTimeout do
          begin
            ShowMessage('Bağlantı zaman aşımına uğradı, daha sonra deneyin');
            PageControl1.ActivePage:=TabSheet1;
            Exit;
          end;
       on E: EIdReadTimeout do
          begin
            ShowMessage('Bağlantı zaman aşımına uğradı, daha sonra deneyin');
            PageControl1.ActivePage:=TabSheet1;
            Exit;
          end;
    end;

    try
      idHttp1.Get(F, MS);
      except
       on E: EIdHTTPProtocolException do
          begin
            ShowMessage(Format('İnternet bağlantısı yok : %d ', [idhttp1.ResponseCode]));
            Exit;
          end;
       on E: EIdSocketError do
          begin
            ShowMessage('İnternet bağlantısı yok, daha sonra deneyin.');
            Exit;
          end;
       on E: EIdConnectTimeout do
          begin
            ShowMessage('Bağlantı zaman aşımına uğradı, daha sonra deneyin');
            PageControl1.ActivePage:=TabSheet1;
            Exit;
          end;
       on E: EIdReadTimeout do
          begin
            ShowMessage('Bağlantı zaman aşımına uğradı, daha sonra deneyin');
            PageControl1.ActivePage:=TabSheet1;
            Exit;
          end;

    end;
    Application.ProcessMessages;
  finally
    idHttp1.Free;
  end;

  try
    MS.Position := 0;
    Jpg.LoadFromStream(MS);
    PRImage.Picture.Assign(Jpg);
    MS.Position := 0;
    MS.SaveToFile(FileName);
    Application.ProcessMessages;
  finally
    MS.Free;
  end;

  Bmp := TBitmap.Create;
  try
    Bmp.Assign(PrImage.Picture.Graphic);
    SetStretchBltMode(PRImage1.Canvas.Handle, HALFTONE);
    with Bmp do
      PRImage1.Canvas.CopyRect(PRImage1.Canvas.ClipRect, Canvas, Canvas.ClipRect);
  finally
    Bmp.Free;
  end;
end;
Sevgi, Saygı.....
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Web servisin oluşturduğu JPG download zaman aşımı

Mesaj gönderen Kuri_YJ »

Selamlar,

ConnectTimeout'u denedin mi? Aşağıdaki Linkte senin bahsettiğin soruna benzer birşeylerden bahsediliyor !. Orayı da bir incele istersen.

http://www.codenewsfast.com/cnf/article ... g1921q5093

Yukarıdaki tüm gönderilerin bulunduğu bir site.

http://www.devsuperpage.com/search/Arti ... rtID=94056
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Re: Web servisin oluşturduğu JPG download zaman aşımı

Mesaj gönderen Salih »

Kuri hocam,

Yanıtınız için teşekkürler. connect.timeout denemiştim, yolladığınız linkleri de şimdi inceliycem.

İnternetten farklı adreslerden bir çok JPG dosyası ile denemeler yaptım, özellikle büyük dosyalar seçtim ve hiç birinde takılma olmadı. Kendileri kabul etmese de bir şekilde sunucu tarafıyla bağlantılı bir sorun gibi görünüyor. Tuhaf ama durum böyle :(

Selamlar, sevgiler...
Sevgi, Saygı.....
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Re: Web servisin oluşturduğu JPG download zaman aşımı

Mesaj gönderen Salih »

Kuri Hocam, sunucu tarafının da sorunla ilgisi yokmuş.

Şöyle garip bir durum var, belki karşılaşan olmuştur. Programın derlenmiş halini kullanarak denemeler yaptım.

* Superonline-Huawei modem üzerinden kablosuz fiber bağlantı : Sorun var.
* Aynı ağa kabloyla bağlanarak : Sorun var.
* GSM üzerinden internet bağlantısı : Sorun YOK.

* Bir başka ağda deneme - TTnet- Tilgin modem üzerinden fiber bağlantı : Sorun YOK.

Modem ayarlarına bakındım, güvenlik duvarını devre dışı bıraktım, DNS vs değiştirmem de işe yaramadı. Sonuç olarak bir çözüm bulamadım, bir ara modemi değiştirticem.
Sevgi, Saygı.....
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2247
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Re: Web servisin oluşturduğu JPG download zaman aşımı

Mesaj gönderen Kuri_YJ »

Burası ilginç olmuş. Şöyle bir sıkıntı ile karşılaşıyor olabilirsin. Eğer download ettiğin isim aynı ise zaman zaman IIS gönderdim deyip göndermeyebiliyor veya routerlar veya modemler akıllılık edip aynı şeyleri tekrar tekrar göndermemezlik edebiliyor. Bundan kaynaklı olabilir. Buraya da biraz eğilirsen belki bir şey çıkartabilirsin. Yani data duplication olduğunda zaman zaman tekrar gönderim yapmayabiliyorlar. Belki bir ayarı vardır bunu kapatabilecek. Oradan olma ihtimali var galiba. Emin değilim.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla