04-01-2019, Saat: 14:34
(Son Düzenleme: 04-01-2019, Saat: 14:36, Düzenleyen: TescilsizUzman.)
(04-01-2019, Saat: 13:38)mad85 Adlı Kullanıcıdan Alıntı: Merhaba Ü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
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 then4- RESTRequest nesnesinin SynchronizedEvents özeliğinin false olduğundan emin olun.