Sayfayı Yazdır | Pencereyi Kapat

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">



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net