Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Sunucu hatasi donma
#11
(16-10-2018, Saat: 16:18)arsl01 Adlı Kullanıcıdan Alıntı: @Fesih ARSLAN hocam
1.sorunum deneme fırsatım yeni oldu fakat sonuç aynı var değişkenindeki jsonvalue de hata veriyor anlamadım.
2.sorunum da şu bunu sadece restclientte istemiyorum http post ederkend eaynı sorun oluyor thread ile yapsak daha iyi değilmi?

1.sorunum deneme fırsatım yeni oldu fakat sonuç aynı var değişkenindeki jsonvalue de hata veriyor anlamadım.

Ne hatası veriyor ? Bu soruyu sordurmaktan bıkmadınız arkadaşlar.
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#12
hocam thread ile ilgil böyle bir örnek buldum denedim ama aynı sonuç

unit Unit1;
 
interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

uses idhttp;

type
 TMyThread=class(TThread)
 public
   procedure execute; override;
   procedure done;
 end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 with tmythread.create(false) do
   freeonterminate:=true;
end;

{ TMyThread }

procedure TMyThread.done;
begin
 showmessage('finished');
end;

procedure TMyThread.execute;
var h:tidhttp;
   f:tfilestream;
begin
 h:=tidhttp.create(nil);
 try
   h.HandleRedirects:=true;
   f:=tfilestream.create('c:\temp\openoffice.exe', fmcreate);
   try
     h.get('http://openoffice.bouncer.osuosl.org/?&product=OpenOffice.org&os=winwjre&lang=en-US&version=3.0.0', f);
     synchronize(done);
   finally
     freeandnil(f);
   end;
 finally
   freeandnil(h);
 end;
end;

end.
Cevapla
#13
(16-10-2018, Saat: 16:22)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı:
(16-10-2018, Saat: 16:18)arsl01 Adlı Kullanıcıdan Alıntı: @Fesih ARSLAN hocam
1.sorunum deneme fırsatım yeni oldu fakat sonuç aynı var değişkenindeki jsonvalue de hata veriyor anlamadım.
2.sorunum da şu bunu sadece restclientte istemiyorum http post ederkend eaynı sorun oluyor thread ile yapsak daha iyi değilmi?

1.sorunum deneme fırsatım yeni oldu fakat sonuç aynı var değişkenindeki jsonvalue de hata veriyor anlamadım.

Ne hatası veriyor ? Bu soruyu sordurmaktan bıkmadınız arkadaşlar.

Ben anladım @Tuğrul HELVACI hocam. Smile
Muhtemelen, değişken tanımını lokal metod içerisinde yaptı. Anonymous metod içerisinde kullanmaya çalışıyor.
En büyük sorun ise verdiğim cevapta ExecuteAsync metodunun bir Thread olduğunu söylememe rağmen, bir thread ile yapsak olur mu? demesi.
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
#14
(16-10-2018, Saat: 16:22)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı:
(16-10-2018, Saat: 16:18)arsl01 Adlı Kullanıcıdan Alıntı: @Fesih ARSLAN hocam
1.sorunum deneme fırsatım yeni oldu fakat sonuç aynı var değişkenindeki jsonvalue de hata veriyor anlamadım.
2.sorunum da şu bunu sadece restclientte istemiyorum http post ederkend eaynı sorun oluyor thread ile yapsak daha iyi değilmi?

1.sorunum deneme fırsatım yeni oldu fakat sonuç aynı var değişkenindeki jsonvalue de hata veriyor anlamadım.

Ne hatası veriyor ? Bu soruyu sordurmaktan bıkmadınız arkadaşlar.

@Tuğrul HELVACI hocam yazıyı güncellemiştim zaten  sorunu çözdüm

(16-10-2018, Saat: 16:30)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(16-10-2018, Saat: 16:22)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: 1.sorunum deneme fırsatım yeni oldu fakat sonuç aynı var değişkenindeki jsonvalue de hata veriyor anlamadım.

Ne hatası veriyor ? Bu soruyu sordurmaktan bıkmadınız arkadaşlar.

Ben anladım @Tuğrul HELVACI hocam. Smile
Muhtemelen, değişken tanımını lokal metod içerisinde yaptı. Anonymous metod içerisinde kullanmaya çalışıyor.
En büyük sorun ise verdiğim cevapta ExecuteAsync metodunun bir Thread olduğunu söylememe rağmen, bir thread ile yapsak olur mu? demesi.
hocam onun thread olduğunu biliyorum yani sadece restclientte bunu kullanabiliyorum bunu http post ederken TIDhttp bileşeninde nasıl kullanacağız onu sormak istedim  Smile
Cevapla
#15
(16-10-2018, Saat: 16:33)arsl01 Adlı Kullanıcıdan Alıntı:
(16-10-2018, Saat: 16:22)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: 1.sorunum deneme fırsatım yeni oldu fakat sonuç aynı var değişkenindeki jsonvalue de hata veriyor anlamadım.

Ne hatası veriyor ? Bu soruyu sordurmaktan bıkmadınız arkadaşlar.

@Tuğrul HELVACI hocam yazıyı güncellemiştim zaten  sorunu çözdüm

(16-10-2018, Saat: 16:30)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Ben anladım @Tuğrul HELVACI hocam. Smile
Muhtemelen, değişken tanımını lokal metod içerisinde yaptı. Anonymous metod içerisinde kullanmaya çalışıyor.
En büyük sorun ise verdiğim cevapta ExecuteAsync metodunun bir Thread olduğunu söylememe rağmen, bir thread ile yapsak olur mu? demesi.
hocam onun thread olduğunu biliyorum yani sadece restclientte bunu kullanabiliyorum bunu http post ederken TIDhttp bileşeninde nasıl kullanacağız onu sormak istedim  Smile

RESTCient, RestRequest ve RESTResponse bileşenleri tüm REST ve RESTfull metodlarını desteklemektedir. REST.Types kütüphanesinde tanımlı olan ve desteklenen REST  veri iletişim yöntemleri;
  TRESTRequestMethod = (
   /// <summary>
   /// Sends a NEW object/entity to the server.
   /// </summary>
   rmPOST,

   /// <summary>
   /// Updates an already existing object/entity on the server. PUT may also
   /// allow for sending a new entity (depends on the actual server/API
   /// implementation).
   /// </summary>
   rmPUT,

   /// <summary>
   /// Retrieves an object/entity from the server.
   /// </summary>
   rmGET,

   /// <summary>
   /// Deletes an object/entity from the server.
   /// </summary>
   rmDELETE,
     /// <summary>
   /// Patches an object/entity on the server, by only updating the pairs that are sent within that PATCH body.
   /// </summary>
   rmPATCH
   );

Örnek kullanımı (execute etmeden önce kullanın):
RESTRequest1.Method := TRESTRequestMethod.rmPOST;
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
#16
Hocam ben yanlis anlattim galiba veya soylediginizi yanlis anladim soyle http componenti ile post ederken soylemek istemistim
Cevapla
#17
(16-10-2018, Saat: 16:48)arsl01 Adlı Kullanıcıdan Alıntı: Hocam ben yanlis anlattim galiba veya soylediginizi yanlis anladim soyle http componenti ile post ederken soylemek istemistim

Bende şunu anlatmaya çalışıyorum. Şu an için tüm web ve Rest servisleri için tümüyle çözüm sunan bileşen setlerini kullanın (RESTCient, RestRequest ve RESTResponse). 
Bu bileşenler HTTP ve benzer klasik bileşenlerden daha stabil ve daha hızlı çalışmaktadır, SSL ihtiyacı yoktur, tüm authentication protokollerini destekler (herhangi bir api'ye çok kolay bir şekilde bağlanmanızı sağlar, ek authentication metodlarına ihtiyaç duymaz.), veriyi optimize ederek gönderir, isterseniz sıkıştırarak da gönderir. Daha burada sayamayacağım kadar bir çok özelliğe sahiptirler.
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
#18
Ben restclient bilesenlerini sadece json olarak kullanildigini biliyordum . Saolun fesih hocam
Cevapla
#19
(14-10-2018, Saat: 10:27)Fesih ARSLAN Adlı Kullanıcıdan Alıntı:
(14-10-2018, Saat: 01:54)Halil Han Badem Adlı Kullanıcıdan Alıntı: Aleykümselam herkese,
  • Thread ile çalışma.
  • Thread ile timeout bekleme
  • Exception ile hatayı yakalama.
  • Hatayı istege göre yöneltme.
Kod istemeyiniz, dediğiniz konu temel.

Biz kod vermeyeceğimizi hiç bir zaman söylemedik. Yalnızca biraz çaba istiyoruz. 
Doğrudan kod isteyenlere karşıyız. 
Bu ikisi arasındaki farkı doğru tespit edemediğimiz zaman, karşı taraf üzerinde olumsuz bir etki bırakıyoruz ve maalesef ki bu prensibimizi ya karşı tarafa anlatmakta güçlük çekiyoruz ya da onlar bizi anlamak istemiyor. 
Kişinin çaba gösterdiğini anladığımız zaman her türlü yardımcı oluyoruz.  


REST servislerinin yoğun kullanıldığı şu günlerde aşağıdaki konu başlıklarında iyi birkaç makale olmadıktan sonra, ilerleyen günlerde tüm soru ve yorumların bu ve benzeri konulardan geleceği aşikardır. 
  • REST servisine bağlantı yöntemleri
  • Data Transfer protokolleri
  • Veriye ulaşma yöntemleri
  • REST metodlarının kullanımı
  • Veriyi alma ve işleme yöntemleri 
@arsl01 sorununa gelecek olursak;

Tecrübelerini beyan eden tüm DelphiCan'ların da belirttiği gibi bu ve benzeri durumların çözümü için veri bağlantılarında şu iki husususun gözden geçirilmesinde fayda olacaktır.
1- Veri bağlantısının olup olmadığını veya sunucudan bir sonuç döndüğünde, bu sonucun istenilen sonuç olup olmadığını kontrol etmek. 
2- Veri boyutunun yüksek olması durumunda asenkron bir metod kullanmak.

Her iki kontrol mekanizması için ek bir yöntem veya metod geliştirmeye gerek yok. 
Delphi temel kütüphaneleriyle bunları yapabiliriz.
Response bileşeninin StatusCode veya StatusText özelliği ile sunucuya ulaşıp ulaşamadığınızı, ulaşılamadı ise bunun nedenini öğrenebilir ve uygulama akışını bu duruma göre yönlendirebilirsiniz.
Sunucudan bir sonuç almak için muhtemelen RESTRequest bileşeninin Execute metodunu kullanıyorsunuz. Execute işlemini bir Thread'e tabi tutmak için aynı bileşenin ExecuteAsync metodunu kullanmalısınız. Bu metod parametre olarak doğrudan anonymous bir prosedür veya  daha önceden tanımlanmış bir prosedürel yapıyı kabul eder.

Her iki yöntemin kullanımı aşağıdaki gibi olmalıdır.
var
 jsonDegeri: TJSONValue;
begin
 RESTRequest1.ExecuteAsync(
   procedure
   begin
     if RESTRequest1.Response.StatusCode = 200 then
     begin
       jsonDegeri := RESTRequest1.Response.JSONValue;
       // Diğer işlemlkeriniz
     end;
   end);
end;

Eline sağlık üstad. Ben de tamamlanma durumunu kontrol etmeye çalışıyordum. Teşekkürler...
Cevapla
#20
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 Smile

Nasıl ilerlemeliyim ?

Teşekkürler...
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Accses denied 10013 Hatasi qnefret 3 57 21-03-2019, Saat: 12:30
Son Yorum: SimaWB
  Delphi içerisinden SQL çalıştırma problemi (Heterogeneous queries hatası) adelphiforumz 4 143 20-03-2019, Saat: 20:25
Son Yorum: adelphiforumz
  Midas.dll hatası hakanharbeli 6 135 15-03-2019, Saat: 08:47
Son Yorum: Tuğrul HELVACI
  OpenCV Component hatası arsl01 2 119 27-02-2019, Saat: 22:36
Son Yorum: arsl01
  cxgrid sutun toplamı hatası (Çözüldü) cinarbil 0 96 23-02-2019, Saat: 15:53
Son Yorum: cinarbil



Konuyu Okuyanlar: 1 Ziyaretçi