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

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 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.
{ talk is cheap show me the code. }
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
{ talk is cheap show me the code. }
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
  Delphi Rest Api yhackup 19 605 30-11-2017, Saat: 10:11
Son Yorum: hi_selamlar
  Rest Dataware bilesenleri klavye 7 247 08-11-2017, Saat: 11:35
Son Yorum: klavye
  Rest Service TBytes edo 1 339 25-10-2017, Saat: 23:58
Son Yorum: ismailkocacan
  Client Pc Sistem Bilgileri Loglama frmman 12 799 25-08-2017, Saat: 08:26
Son Yorum: frmman
  Rest Api Get ve POST işlemi kasparov58 2 436 07-04-2017, Saat: 15:17
Son Yorum: AliZairov



Konuyu Okuyanlar: 1 Ziyaretçi