Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Sunucu hatasi donma
#21
(04-01-2019, Saat: 13:38)mad85 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba Üstadlar,

RESTRequest1.ExecuteAsync(
   procedure
   begin
     if RESTRequest1.Response.StatusCode = 200 then
     begin
       btnGiris.Enabled := true;

       Hide;
       startScreen(baseUrl);
     end else begin
       btnGiris.Enabled := true;
       Application.MessageBox('Giriş Yapılamadı','Hata',MB_OK+MB_ICONERROR);
     end;
   end
 );


 Burada uygulama bazı durumlarda (nedenini anlamadığım ve çözemediğim) takılıyor.

10 müşteriden ikisinde sorun yaşıyorum. Sonuç bekliyor. (if RESTRequest1.Response.StatusCode = 200 then -> bu kısmı aşamıyorum.) 

Bekleyen müşterilerde http analyzer tarzı bir request izleme yazılımı ile izlediğimde tıkır tıkır çalışıyor. Saçma bir durum, takıldım, mantık yürütemiyorum Smile

Nasıl ilerlemeliyim ?

Teşekkürler...

Merhaba,
1- İşlem gerçekleşmediği durumda, StatusText ile hata/işlem sonuç bilgisini alabilirsiniz.
2- Hata olması (http kaynaklı) durumunda, isteği tekrar yapabilirsiniz. Bunun için RestRequest nesnesinin OnHTTPProtocolError olayında execute procedure'ünü tekrar tetikleyebilirsiniz. Bunun sakıncaları olur mu (her hata durumunda, kullanıcı kontrolü dışında sürekli istekte bulunmak), derseniz, test etmeden bir şey söylemek çok güç. 
3- Hatanın sunucu veya anlık kesintilerden kaynaklı olabilmesi ihtimaline karşı tek bir status kontrolü yerine birden fazla status değerini referans alan Success metodunu kullanabilirsiniz.
if RESTRequest1.Response.Status.Success then
4- RESTRequest nesnesinin SynchronizedEvents özeliğinin false olduğundan emin olun.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#22
@Fesih ARSLAN hocam statustext dedigimiz hata mesajimi?
Cevapla
#23
(04-01-2019, Saat: 17:19)arsl01 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol@Fesih ARSLAN  hocam statustext dedigimiz hata mesajimi?

Yapılan istek sonucunda istek durumunu bildiren bilgidir. Ör. 
200 OK Tamam
201 Created Oluşturuldu
202 Accepted Onaylandı
203 Non-Authoritative Information Yetersiz Bilgi
204 No Content İçerik Yok
210 Content Different Farklı İçerik
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#24
Anladim hocam tesekkurler
Cevapla
#25
(04-01-2019, Saat: 14:34)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(04-01-2019, Saat: 13:38)mad85 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba Üstadlar,

RESTRequest1.ExecuteAsync(
   procedure
   begin
     if RESTRequest1.Response.StatusCode = 200 then
     begin
       btnGiris.Enabled := true;

       Hide;
       startScreen(baseUrl);
     end else begin
       btnGiris.Enabled := true;
       Application.MessageBox('Giriş Yapılamadı','Hata',MB_OK+MB_ICONERROR);
     end;
   end
 );


 Burada uygulama bazı durumlarda (nedenini anlamadığım ve çözemediğim) takılıyor.

10 müşteriden ikisinde sorun yaşıyorum. Sonuç bekliyor. (if RESTRequest1.Response.StatusCode = 200 then -> bu kısmı aşamıyorum.) 

Bekleyen müşterilerde http analyzer tarzı bir request izleme yazılımı ile izlediğimde tıkır tıkır çalışıyor. Saçma bir durum, takıldım, mantık yürütemiyorum Smile

Nasıl ilerlemeliyim ?

Teşekkürler...

Merhaba,
1- İşlem gerçekleşmediği durumda, StatusText ile hata/işlem sonuç bilgisini alabilirsiniz.
2- Hata olması (http kaynaklı) durumunda, isteği tekrar yapabilirsiniz. Bunun için RestRequest nesnesinin OnHTTPProtocolError olayında execute procedure'ünü tekrar tetikleyebilirsiniz. Bunun sakıncaları olur mu (her hata durumunda, kullanıcı kontrolü dışında sürekli istekte bulunmak), derseniz, test etmeden bir şey söylemek çok güç. 
3- Hatanın sunucu veya anlık kesintilerden kaynaklı olabilmesi ihtimaline karşı tek bir status kontrolü yerine birden fazla status değerini referans alan Success metodunu kullanabilirsiniz.
if RESTRequest1.Response.Status.Success then
4- RESTRequest nesnesinin SynchronizedEvents özeliğinin false olduğundan emin olun.

Teşekkürler üstad...
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Comport Library porta veri gönderme hatası baloglurecep 8 238 25-12-2018, Saat: 09:12
Son Yorum: frmman
  is not a valid floating point value Hatası [ÇÖZÜLDÜ] SenayAkgun 16 378 23-12-2018, Saat: 22:07
Son Yorum: mustafaozpinar
  Cxgrid datetime alani hatası siyahbere 1 98 21-12-2018, Saat: 17:27
Son Yorum: meko
  İlginç Delphi Hatası baloglurecep 9 319 18-12-2018, Saat: 18:23
Son Yorum: baloglurecep
  "F1026 File not found" hatası Pervane 4 262 01-11-2018, Saat: 14:33
Son Yorum: Pervane



Konuyu Okuyanlar: 1 Ziyaretçi