ClRest sıfırlama
Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Clomosy ile değişken kullanımı
Forum Tanımlaması: TRObject dili ile değişken tanımlaması ve ekranda gösterme
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1216
Tarih: 06 Kasım 2025 Saat 20:37 Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com
Konu: ClRest sıfırlama
Mesajı Yazan: M-Guney
Konu: ClRest sıfırlama
Mesaj Tarihi: 06 Kasım 2025 Saat 14:04
Login işlemini yaptıktan sonra ana menüye yönlendiriyorum ardından ana menüdeki herhangi bir butonda clrest yapacağımda önceki kapanmış olan sayfanın clresti hala duruyor silmeye çalıştım fakat silemedim.
void Login var FToken: String; { try TCRest.BaseURL = 'http://BENIM_UZANTIM/login'; TCRest.Accept = 'application/json'; TCRest.Method = rmPOST; // Post if((MailEdit.Text == '')||(MailEdit.Text == '')&&(PasswordEdit.Text == '')){ ShowMessage('Lütfen gerekli kısımları doldurun.') }else{ TCRest.AddBody( '{"usernameOrEmail": "'+MailEdit.Text+'", "password_hash": "' + GetHashed(PasswordEdit.Text) + '"}', 'application/json' ); TCRest.Execute; FToken = TCRest.Response; TCRest.ClearParams; TCRest.ClearBody; //ShowMessage(FToken); if((TCRest.StatusCode == 200)||(TCRest.StatusCode == 201)){ FToken = Clomosy.CLParseJSON(FToken, 'token') // ShowMessage(FToken); Post This as Global Variable to Reach Easy; // DOOOOOO Clomosy.GlobalVariableString = FToken; Clomosy.RunUnit('uHomePage'); MainForm.Close; }else if((TCRest.StatusCode == 202){ ShowMessage('E-postanızı kontrol ediniz. E-posta onayı bekleniyor..'); }else if((TCRest.StatusCode == 401){ ShowMessage('Girilen bilgiler geçersiz. Lütfen tekrar deneyiniz.'); } else{ ShowMessage ('Tekrar Deneyiniz.'+Clomosy.CLParseJSON(FToken, 'message') ) } } except ShowMessage('Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage); } } void GetOrdersV{ //TCRest.ClearParams; //TCRest.ClearBody; TCRest.BaseURL = 'http://BENIM_UZANTIM/orders'; TCRest.Accept = 'application/json'; TCRest.Method = rmGET; TCRest.AddHeader('Authorization','Bearer '+Clomosy.GlobalVariableString); TCRest.ExecuteAsync; if(TCRest.Response == ''){ ShowMessage('Sipariş listesi boş herhangi bir sipariş yok.') }else{ ShowMessage('orders output: '+ TCRest.Response); OrdersPnlV;
} } https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|
Cevaplar:
Mesajı Yazan: M-Guney
Mesaj Tarihi: 06 Kasım 2025 Saat 14:31
Sorunum çözüldü Asenkron yapıp copmpleted ile çağrınca o problem karşıma bir daha çıkmadı. Bu kodda herhangi bir problem olmadan çalışıyor. void GetOrdersV { //TCRest.ClearParams; //TCRest.ClearBody; TCRest.BaseURL = 'http://URL/orders'; TCRest.Accept = 'application/json'; TCRest.Method = rmGET; TCRest.AddHeader('Authorization','Bearer '+Clomosy.GlobalVariableString); TCRest.OnCompleted = 'GetOrdersCompletedV'; TCRest.ExecuteAsync; } void GetOrdersCompletedV var jsonResponse: String; { jsonResponse = TCRest.Response if(jsonResponse == ''){ ShowMessage('Sipariş listesi boş herhangi bir sipariş yok.') }else{ ShowMessage('orders output: '+ jsonResponse); OrdersPnlV;
} } https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|
Mesajı Yazan: M-Guney
Mesaj Tarihi: 06 Kasım 2025 Saat 14:37
fakat anlamadığım bir şey var neden her zaman ''boş döndürüyor aslında dolu [ { "order_id": 1, "table_name": "K1", "status": "paid", "order_time": "2025-10-23T17:37:36.870Z" }, { "order_id": 2, "table_name": "K1", "status": "paid", "order_time": "2025-10-23T17:37:55.233Z" },
|
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 06 Kasım 2025 Saat 14:39
Öncelikle her form için ayrı tclrest kullansak login forma için çzel tclrest
LoginRest.ClearParams; LoginRest.ClearBody;
kullanarak önceki ayarları temizleyelim. LoginRest.Free; ile serbest bıraksak ve birime yönlendirsek,
HomePage içinde bu işlemleri tekrarlayalım
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 06 Kasım 2025 Saat 14:40
|
Denedikten sonra hata devam ediyorsa dönüş yapar mısın https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|
Mesajı Yazan: M-Guney
Mesaj Tarihi: 06 Kasım 2025 Saat 14:49
|
peki ramde herhangi bir yüke sebep olur mu bu işlem https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|
Mesajı Yazan: M-Guney
Mesaj Tarihi: 06 Kasım 2025 Saat 14:53
|
LoginRest.Free; login kısmında ve diğer unitlerde aynı rest isnimini kullanmama rağmen sadece logine ekstra olarak free kodunu ekledikten sonra problemim tamamıyla çözüldü teşekkürler. https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 06 Kasım 2025 Saat 15:43
|
Merhaba Güney,
Yaptığım incelemede, her form değişiminde veya API çağrısında free + create döngüsünün RAM yükünü artırdığını gözlemledim. Bunun yerine, nesneyi bir kez create edip her kullanımda clear uygulamak daha verimli görünüyor. Aşağıdaki yaklaşımı deneyelim:
Tek seferlik oluşturma: GlobalRest yalnızca bir kez create edilsin.
Header temizliği: Gerekli durumlarda clRest.RemoveHeader('Authorization'); kullan. ( GlobalRest.BaseURL = ''; kullanada bilirsin)
Body temizliği: Özellikle POST isteklerinden sonra GlobalRest.ClearBody;
Parametre temizliği: Body’den sonra GlobalRest.ClearParams;
BaseURL / yapılandırma: Gerekirse GlobalRest.BaseURLi geçici olarak boş bırakmak yerine, mümkün olduğunca sabit tutup sadece ilgili header/parametreleri temizleyelim.
Bu yöntemle önceki isteklerden kalan body/parametrelerin RAM’de tutulmasının önüne geçer, her çağrı öncesi temiz bir durumla devam etmiş oluruz.
Eline sağlık, dönüşünü beklerim. https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|
|