Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
rest client
#1
s.a.
hayırlı sabahlar.
http://www.androidevreni.com/dersler/json_veri.txt bu linkten json formatındaki veriyi rest debugger ile alıyorum fakat delphi kodları ile almaya çalıştığımda HTTP/1.1 412 Precondition Failed. hatası alıyorum.
delphi kodlarıda aşağıdaki gibi.

uses
  REST.Response.Adapter,System.JSON;

procedure TForm1.JsonToDataset(aDataset: TDataSet; aJSON: string);
var
  JObj: TJSONArray;
  vConv : TCustomJSONDataSetAdapter;
begin
  if (aJSON = EmptyStr) then
  begin
    Exit;
  end;

  JObj := TJSONObject.ParseJSONValue(aJSON) as TJSONArray;
  vConv := TCustomJSONDataSetAdapter.Create(Nil);

  try
    vConv.Dataset := aDataset;
    vConv.UpdateDataSet(JObj);
  finally
    vConv.Free;
    JObj.Free;
  end;

end;



procedure TForm1.Button1Click(Sender: TObject);
var
metin:string;
begin
    metin:=IdHTTP1.Get('http://www.androidevreni.com/dersler/json_veri.txt');
    JsonToDataset(FDMemTable1,metin);
end;

kolay gelsin.hayırlı günler.
Cevapla
#2
Konu takibimde. JSON'cılar buyursun.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#3
Hata mesajına bakılırsa sorun JSON ile ilgili değil.
@Kamuran Alpkaya; verdiğiniz kodda metin değişkeni JSON değer alıyor mu?
There's no place like 127.0.0.1
WWW
Cevapla
#4
Merhaba,

Json metninde hata yok. Request headerde problem var gibi. Content-Type, Accept, vs parametreleri de göndermeniz gerekebilir. IdHTTP1.Get yerine IdHTTP1.Post olarak deneyebilir misiniz ?

İyi çalışmalar.
Cevapla
#5
Merhaba,
Yeni nesil nesneler (TRESTClient, TRESTRequest ve TRESTResponse ), bu konuda çok iyi. Smile

2017-12-07_10-49-21.png

İlgili çalışma
procedure TForm1.Button1Click(Sender: TObject);
 procedure JsonToDataset(aDataset: TDataSet; aJSON: string);
 var
   JObj: TJSONArray;
   vConv: TCustomJSONDataSetAdapter;
 begin
   if (aJSON = EmptyStr) then
   begin
     Exit;
   end;

   JObj := TJSONObject.ParseJSONValue(aJSON) as TJSONArray;
   vConv := TCustomJSONDataSetAdapter.Create(Nil);

   try
     vConv.DataSet := aDataset;
     vConv.UpdateDataSet(JObj);
   finally
     vConv.Free;
     JObj.Free;
   end;

 end;

begin
 RESTRequest1.Execute;
 Memo1.Text := RESTResponse1.Content;
 JsonToDataset(FDMemTable1, RESTResponse1.Content);
 ShowMessage(Format('JSON Kayıt Sayısı: %d', [FDMemTable1.RecordCount]));
end;

Kullanılan bileşen özellikleri:
object RESTResponse1: TRESTResponse
  ContentType = 'text/plain'
 Left = 552
 Top = 146
end

object RESTRequest1: TRESTRequest
 Client = RESTClient1
 Params = <>
 Response = RESTResponse1
 SynchronizedEvents = False
 Left = 552
 Top = 89
end

object RESTClient1: TRESTClient
 Accept = 'application/json, text/plain; q=0.9, text/html;q=0.8,'
 AcceptCharset = 'UTF-8, *;q=0.8'
 BaseURL = 'http://www.androidevreni.com/dersler/json_veri.txt'
 Params = <>
 HandleRedirects = True
 RaiseExceptionOn500 = False
 Left = 552
 Top = 32
end
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
#6
Merhaba,
RestDebugger ile yaptığınız sorgulama ekranında, sorgu yaptıktan sonra "Copy Components" butonu ile verileri hafızaya alın. Daha sonra Delphi projenizde form üzerinde yapıştır "Ctrl+V" yaptığınızda bileşenler form üzerine yerşecektir. Daha sonra aşağıdaki kodu deneyin. Bu arada bileşenlerin Object Inspector kısımlarını inceler iseniz eksik kısımları göreceksinizdir.

  RESTRequest1.Execute;
  ShowMessage(RESTResponse1.Content);

İyi Çalışmalar.
Cevapla
#7
Allah razı olsun. tamamdır.
Cevapla
#8
(07-12-2017, Saat: 11:27)Kamuran Alpkaya Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlAllah razı olsun. tamamdır.

Lütfen size yardımcı olan yanıtların altındaki "Puan Ver" butonu ile 1~4 puan arasında çözümünüze verdiği etkiye göre puan vererek bunu gösterin. Blush
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#9
(07-12-2017, Saat: 11:31)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(07-12-2017, Saat: 11:27)Kamuran Alpkaya Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlAllah razı olsun. tamamdır.

Lütfen size yardımcı olan yanıtların altındaki "Puan Ver" butonu ile 1~4 puan arasında çözümünüze verdiği etkiye göre puan vererek bunu gösterin. Blush

Kamuran Bey'in profilinde puan verme ile ilgili bir sorun vardı. Bana ÖM ile bildirdi. Düzeltmeye çalışıyoruz.
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
#10
S.a.
Puanlama işi tamam heralde.
Şimdi sira bununla ilgili küçük bir server örneği yazmada.
Bilgi örnekler tavsiyeler alinir. Hayırlı geceler.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Rest server client UTF8 Problemi burakb44 6 135 05-10-2018, Saat: 11:56
Son Yorum: burakb44
  Client tarafında yapılan tüm değişiklikleri tek seferde veritabanına nasıl yazarım adelphiforumz 3 162 12-09-2018, Saat: 22:30
Son Yorum: ssahinoglu
  Rest Web Servis Cookie Sıkıntısı Hk. satiuqea 7 231 31-08-2018, Saat: 17:36
Son Yorum: SimaWB
  Client Pc Sistem Bilgileri Loglama frmman 13 1.768 06-06-2018, Saat: 09:48
Son Yorum: uparlayan
  Delphi Rest Api yhackup 19 1.802 30-11-2017, Saat: 10:11
Son Yorum: hi_selamlar



Konuyu Okuyanlar: 1 Ziyaretçi