Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
IdHttp Dönen veri status Problemi [Çözüldü ]
#1
Merhabalar
Kimlik onayı doğrulamak için Idhttp ile  bir sunucuya bağlanarak göndermekte olduğum verilerin geri dönüşüyle ilgili takıldığım bir nokta var resimleri ve kodu da aşağıda paylaşacağım 
takıldığım mesele şu ki status 200 döndüğü zxaman sıkıntısız birr şekilde verilerimi alıp memo1 içine response yazdırabiliyorum ama 200 değilde 400 olarak döndüğü zaman onu yakalayamıyorum ve memo içine  yazdıramıyorum ve ve sistem hatayı otomatik olarak messagebox şeklinde ekrana veriyor. acaba hatalı kullanımı nerde yaptım ?
kodu aşağıda paylaşıyorum postman ile karşılaştırmalı verilerimin resimlerini de aşağıya koyuyorum 

T9qYPP.png
kOzRoi.png
kjuM3F.png


MchWbX.png

htii2t.png
9HEmIh.png




unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
  cxLookAndFeelPainters, cxContainer, cxEdit, dxSkinsCore, dxSkinBasic,
  dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee,
  dxSkinDarkroom, dxSkinDarkSide, dxSkinDevExpressDarkStyle,
  dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast,
  dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
  dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins,
  dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
  dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
  dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
  dxSkinOffice2013LightGray, dxSkinOffice2013White,
  System.Net.HttpClientComponent, dxSkinOffice2016Colorful,
  dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful,
  dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven,
  dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver,
  dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld,
  dxSkinTheBezier, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark,
  dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint,
  dxSkinXmas2008Blue, Vcl.Menus, Vcl.StdCtrls, dxGDIPlusClasses, cxImage,
  cxButtons, cxTextEdit, IdBaseComponent, System.JSON, IdComponent,
  IdTCPConnection, DateUtils,
  IdTCPClient, IdHTTP, Vcl.ComCtrls, dxCore, cxDateUtils, cxMaskEdit,
  cxDropDownEdit, cxCalendar;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    cxSoyadED: TcxTextEdit;
    cxAdEd: TcxTextEdit;
    cxtcED: TcxTextEdit;
    cxDateEdit1: TcxDateEdit;
    cxImage2: TcxImage;
    cxImage1: TcxImage;
    IdHTTP1: TIdHTTP;
    Kontrol: TcxButton;
    Memo1: TMemo;
    procedure KontrolClick(Sender: TObject);
  private
    procedure KimlikONay;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.KimlikONay();
Var
  HTMLStream: TStringStream;
  PostData: TStringList;
  response, Error, status: string;
  JSonValue: TJSonValue;
  gun, ay, yil: String;
Begin
if cxDateEdit1.Text='' then
Begin
 showmessage('Tarih Girin');
 exit;
End;

    PostData := TStringList.Create;
    yil := YearOf(cxDateEdit1.Date).ToString;
    ay := MonthOf(cxDateEdit1.Date).ToString;
    gun := DayOf(cxDateEdit1.Date).ToString;

     PostData.Add('method=verifiedTc');
      PostData.Add('tc=' + cxtcED.Text);
      PostData.Add('name=' + cxAdEd.Text);
      PostData.Add('surname=' + cxSoyadED.Text);
      PostData.Add('day=' + gun);
      PostData.Add('month=' + ay);
      PostData.Add('year=' + yil);
      IdHTTP1.Request.CustomHeaders.Values['Authorization'] :='...........';response := IdHTTP1.Post('https:/....../..../.../index.php?SERVICE=Verified',PostData);

      JSonValue := TJSONObject.ParseJSONValue(response);
      status := JSonValue.GetValue<string>('status');


      if (status = '200') then
      Begin
        Showmessage('Tc Kimlik No Onaylandı');
        Showmessage(status);
        Memo1.Text := response;
        cxImage1.visible := True;
        cxImage2.visible := False;

      End;

      if (status<>'200') then
      Begin
      Error := JSonValue.GetValue<string>('error');
      Showmessage('Onaylanmadı');
      Memo1.Text := response;
      cxImage1.visible := False;
      cxImage2.visible := True;
      End;



      Memo1.Text := response;
      PostData.Free;



End;

procedure TForm1.KontrolClick(Sender: TObject);
begin
KimlikONay();
end;

end.
Cevapla
#2
(29-03-2021, Saat: 16:06)Mesut Adlı Kullanıcıdan Alıntı: Merhabalar
Kimlik onayı doğrulamak için Idhttp ile  bir sunucuya bağlanarak göndermekte olduğum verilerin geri dönüşüyle ilgili takıldığım bir nokta var resimleri ve kodu da aşağıda paylaşacağım 
takıldığım mesele şu ki status 200 döndüğü zxaman sıkıntısız birr şekilde verilerimi alıp memo1 içine response yazdırabiliyorum ama 200 değilde 400 olarak döndüğü zaman onu yakalayamıyorum ve memo içine  yazdıramıyorum ve ve sistem hatayı otomatik olarak messagebox şeklinde ekrana veriyor. acaba hatalı kullanımı nerde yaptım ?
kodu aşağıda paylaşıyorum postman ile karşılaştırmalı verilerimin resimlerini de aşağıya koyuyorum 

T9qYPP.png
kOzRoi.png
kjuM3F.png


MchWbX.png

htii2t.png
9HEmIh.png




unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
  cxLookAndFeelPainters, cxContainer, cxEdit, dxSkinsCore, dxSkinBasic,
  dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee,
  dxSkinDarkroom, dxSkinDarkSide, dxSkinDevExpressDarkStyle,
  dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast,
  dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
  dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins,
  dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
  dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
  dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
  dxSkinOffice2013LightGray, dxSkinOffice2013White,
  System.Net.HttpClientComponent, dxSkinOffice2016Colorful,
  dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful,
  dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven,
  dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver,
  dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld,
  dxSkinTheBezier, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark,
  dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint,
  dxSkinXmas2008Blue, Vcl.Menus, Vcl.StdCtrls, dxGDIPlusClasses, cxImage,
  cxButtons, cxTextEdit, IdBaseComponent, System.JSON, IdComponent,
  IdTCPConnection, DateUtils,
  IdTCPClient, IdHTTP, Vcl.ComCtrls, dxCore, cxDateUtils, cxMaskEdit,
  cxDropDownEdit, cxCalendar;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    cxSoyadED: TcxTextEdit;
    cxAdEd: TcxTextEdit;
    cxtcED: TcxTextEdit;
    cxDateEdit1: TcxDateEdit;
    cxImage2: TcxImage;
    cxImage1: TcxImage;
    IdHTTP1: TIdHTTP;
    Kontrol: TcxButton;
    Memo1: TMemo;
    procedure KontrolClick(Sender: TObject);
  private
    procedure KimlikONay;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.KimlikONay();
Var
  HTMLStream: TStringStream;
  PostData: TStringList;
  response, Error, status: string;
  JSonValue: TJSonValue;
  gun, ay, yil: String;
Begin
if cxDateEdit1.Text='' then
Begin
 showmessage('Tarih Girin');
 exit;
End;

    PostData := TStringList.Create;
    yil := YearOf(cxDateEdit1.Date).ToString;
    ay := MonthOf(cxDateEdit1.Date).ToString;
    gun := DayOf(cxDateEdit1.Date).ToString;

     PostData.Add('method=verifiedTc');
      PostData.Add('tc=' + cxtcED.Text);
      PostData.Add('name=' + cxAdEd.Text);
      PostData.Add('surname=' + cxSoyadED.Text);
      PostData.Add('day=' + gun);
      PostData.Add('month=' + ay);
      PostData.Add('year=' + yil);
      IdHTTP1.Request.CustomHeaders.Values['Authorization'] :='...........';response := IdHTTP1.Post('https:/....../..../.../index.php?SERVICE=Verified',PostData);

      JSonValue := TJSONObject.ParseJSONValue(response);
      status := JSonValue.GetValue<string>('status');


      if (status = '200') then
      Begin
        Showmessage('Tc Kimlik No Onaylandı');
        Showmessage(status);
        Memo1.Text := response;
        cxImage1.visible := True;
        cxImage2.visible := False;

      End;

      if (status<>'200') then
      Begin
      Error := JSonValue.GetValue<string>('error');
      Showmessage('Onaylanmadı');
      Memo1.Text := response;
      cxImage1.visible := False;
      cxImage2.visible := True;
      End;



      Memo1.Text := response;
      PostData.Free;



End;

procedure TForm1.KontrolClick(Sender: TObject);
begin
KimlikONay();
end;

end.

Normalde indy mesajları göstermez vcl/fmx içinde default hata yakalayıcıları var onlar gösterir, eğer hatayı siz kendiniz yakalarsanız, default yakalayıcılar(handler) çalışmaz.
Örneğin:
   try
  //kodunuzu buraya yazınız
 except
   on E: EIdHTTPProtocolException do begin
     if E.ErrorCode = 400 then
       Memo1.Text := E.ErrorMessage
end;
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.
https://play.google.com/store/apps/developer?id=ONGUN
Cevapla
#3
(29-03-2021, Saat: 16:39)savasabd Adlı Kullanıcıdan Alıntı:
(29-03-2021, Saat: 16:06)Mesut Adlı Kullanıcıdan Alıntı: Merhabalar
Kimlik onayı doğrulamak için Idhttp ile  bir sunucuya bağlanarak göndermekte olduğum verilerin geri dönüşüyle ilgili takıldığım bir nokta var resimleri ve kodu da aşağıda paylaşacağım 
takıldığım mesele şu ki status 200 döndüğü zxaman sıkıntısız birr şekilde verilerimi alıp memo1 içine response yazdırabiliyorum ama 200 değilde 400 olarak döndüğü zaman onu yakalayamıyorum ve memo içine  yazdıramıyorum ve ve sistem hatayı otomatik olarak messagebox şeklinde ekrana veriyor. acaba hatalı kullanımı nerde yaptım ?
kodu aşağıda paylaşıyorum postman ile karşılaştırmalı verilerimin resimlerini de aşağıya koyuyorum 

T9qYPP.png
kOzRoi.png
kjuM3F.png


MchWbX.png

htii2t.png
9HEmIh.png




unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
  cxLookAndFeelPainters, cxContainer, cxEdit, dxSkinsCore, dxSkinBasic,
  dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee,
  dxSkinDarkroom, dxSkinDarkSide, dxSkinDevExpressDarkStyle,
  dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast,
  dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
  dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins,
  dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
  dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
  dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
  dxSkinOffice2013LightGray, dxSkinOffice2013White,
  System.Net.HttpClientComponent, dxSkinOffice2016Colorful,
  dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful,
  dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven,
  dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver,
  dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld,
  dxSkinTheBezier, dxSkinsDefaultPainters, dxSkinValentine,
  dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark,
  dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint,
  dxSkinXmas2008Blue, Vcl.Menus, Vcl.StdCtrls, dxGDIPlusClasses, cxImage,
  cxButtons, cxTextEdit, IdBaseComponent, System.JSON, IdComponent,
  IdTCPConnection, DateUtils,
  IdTCPClient, IdHTTP, Vcl.ComCtrls, dxCore, cxDateUtils, cxMaskEdit,
  cxDropDownEdit, cxCalendar;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    cxSoyadED: TcxTextEdit;
    cxAdEd: TcxTextEdit;
    cxtcED: TcxTextEdit;
    cxDateEdit1: TcxDateEdit;
    cxImage2: TcxImage;
    cxImage1: TcxImage;
    IdHTTP1: TIdHTTP;
    Kontrol: TcxButton;
    Memo1: TMemo;
    procedure KontrolClick(Sender: TObject);
  private
    procedure KimlikONay;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.KimlikONay();
Var
  HTMLStream: TStringStream;
  PostData: TStringList;
  response, Error, status: string;
  JSonValue: TJSonValue;
  gun, ay, yil: String;
Begin
if cxDateEdit1.Text='' then
Begin
 showmessage('Tarih Girin');
 exit;
End;

    PostData := TStringList.Create;
    yil := YearOf(cxDateEdit1.Date).ToString;
    ay := MonthOf(cxDateEdit1.Date).ToString;
    gun := DayOf(cxDateEdit1.Date).ToString;

     PostData.Add('method=verifiedTc');
      PostData.Add('tc=' + cxtcED.Text);
      PostData.Add('name=' + cxAdEd.Text);
      PostData.Add('surname=' + cxSoyadED.Text);
      PostData.Add('day=' + gun);
      PostData.Add('month=' + ay);
      PostData.Add('year=' + yil);
      IdHTTP1.Request.CustomHeaders.Values['Authorization'] :='...........';response := IdHTTP1.Post('https:/....../..../.../index.php?SERVICE=Verified',PostData);

      JSonValue := TJSONObject.ParseJSONValue(response);
      status := JSonValue.GetValue<string>('status');


      if (status = '200') then
      Begin
        Showmessage('Tc Kimlik No Onaylandı');
        Showmessage(status);
        Memo1.Text := response;
        cxImage1.visible := True;
        cxImage2.visible := False;

      End;

      if (status<>'200') then
      Begin
      Error := JSonValue.GetValue<string>('error');
      Showmessage('Onaylanmadı');
      Memo1.Text := response;
      cxImage1.visible := False;
      cxImage2.visible := True;
      End;



      Memo1.Text := response;
      PostData.Free;



End;

procedure TForm1.KontrolClick(Sender: TObject);
begin
KimlikONay();
end;

end.

Normalde indy mesajları göstermez vcl/fmx içinde default hata yakalayıcıları var onlar gösterir, eğer hatayı siz kendiniz yakalarsanız, default yakalayıcılar(handler) çalışmaz.
Örneğin:
   try
  //kodunuzu buraya yazınız
 except
   on E: EIdHTTPProtocolException do begin
     if E.ErrorCode = 400 then
       Memo1.Text := E.ErrorMessage
end;

Teşekkür ederim ben try kullanırken exception ile ykalamaya çalışıyordum ama bu şekilde E.Errormessage içindeki 'error 'nasıl yakalayabilirim ?
Cevapla
#4
   procedure TForm1.KimlikONay();
Var
 HTMLStream: TStringStream;
 PostData: TStringList;
 response, Error, status: string;
 JSonValue: TJSonValue;
 gun, ay, yil: String;
Begin
if cxDateEdit1.Text='' then
Begin
showmessage('Tarih Girin');
exit;
End;

   PostData := TStringList.Create;
   yil := YearOf(cxDateEdit1.Date).ToString;
   ay := MonthOf(cxDateEdit1.Date).ToString;
   gun := DayOf(cxDateEdit1.Date).ToString;

    PostData.Add('method=verifiedTc');
     PostData.Add('tc=' + cxtcED.Text);
     PostData.Add('name=' + cxAdEd.Text);
     PostData.Add('surname=' + cxSoyadED.Text);
     PostData.Add('day=' + gun);
     PostData.Add('month=' + ay);
     PostData.Add('year=' + yil);
      try
      try


     IdHTTP1.Request.CustomHeaders.Values['Authorization'] :='...........';response := IdHTTP1.Post('https:/....../..../.../index.php?SERVICE=Verified',PostData);

     JSonValue := TJSONObject.ParseJSONValue(response);
     status := JSonValue.GetValue<string>('status');


     if (status = '200') then
     Begin
       Showmessage('Tc Kimlik No Onaylandı');
       Showmessage(status);
       cxImage1.visible := True;
       cxImage2.visible := False;

     End;

     if (status<>'200') then
     Begin
     Error := JSonValue.GetValue<string>('error');
     Showmessage('Onaylanmadı');
     cxImage1.visible := False;
     cxImage2.visible := True;
     End;


     except
  on E: EIdHTTPProtocolException do begin
    if E.ErrorCode = 400 then
     response := E.ErrorMessage
     end;
     end;
   finally
      Memo1.Text := response;
     PostData.Free;
 end;;






End;
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.
https://play.google.com/store/apps/developer?id=ONGUN
Cevapla
#5
(29-03-2021, Saat: 17:11)savasabd Adlı Kullanıcıdan Alıntı:
   procedure TForm1.KimlikONay();
Var
 HTMLStream: TStringStream;
 PostData: TStringList;
 response, Error, status: string;
 JSonValue: TJSonValue;
 gun, ay, yil: String;
Begin
if cxDateEdit1.Text='' then
Begin
showmessage('Tarih Girin');
exit;
End;

   PostData := TStringList.Create;
   yil := YearOf(cxDateEdit1.Date).ToString;
   ay := MonthOf(cxDateEdit1.Date).ToString;
   gun := DayOf(cxDateEdit1.Date).ToString;

    PostData.Add('method=verifiedTc');
     PostData.Add('tc=' + cxtcED.Text);
     PostData.Add('name=' + cxAdEd.Text);
     PostData.Add('surname=' + cxSoyadED.Text);
     PostData.Add('day=' + gun);
     PostData.Add('month=' + ay);
     PostData.Add('year=' + yil);
      try
      try


     IdHTTP1.Request.CustomHeaders.Values['Authorization'] :='...........';response := IdHTTP1.Post('https:/....../..../.../index.php?SERVICE=Verified',PostData);

     JSonValue := TJSONObject.ParseJSONValue(response);
     status := JSonValue.GetValue<string>('status');


     if (status = '200') then
     Begin
       Showmessage('Tc Kimlik No Onaylandı');
       Showmessage(status);
       cxImage1.visible := True;
       cxImage2.visible := False;

     End;

     if (status<>'200') then
     Begin
     Error := JSonValue.GetValue<string>('error');
     Showmessage('Onaylanmadı');
     cxImage1.visible := False;
     cxImage2.visible := True;
     End;


     except
  on E: EIdHTTPProtocolException do begin
    if E.ErrorCode = 400 then
     response := E.ErrorMessage
     end;
     end;
   finally
      Memo1.Text := response;
     PostData.Free;
 end;;






End;

ya ilgi ve yardımlarınız için gerçekten çok teşekkür ederim. sizi uğraştırıyorum muhtemelen ama benim istediğim tam olarak kırmızı ile altını çizdiğim ifadeyi alıp ekranda uyarı olarak göstermek 
ujLpST.png
Cevapla
#6
Merhaba,
Konunun çözümünden bağımsız olarak, kodlarınızı delphi kod biçimlendirme ile eklerseniz daha anlaşılır, okunaklı ve ileriye dönük olacaktır.
Cevapla
#7
(29-03-2021, Saat: 17:30)Mr.X Adlı Kullanıcıdan Alıntı: Merhaba,
Konunun çözümünden bağımsız olarak, kodlarınızı delphi kod biçimlendirme ile eklerseniz daha anlaşılır, okunaklı ve ileriye dönük olacaktır.

unit kimlikonay;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
 System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels,
 cxLookAndFeelPainters, cxContainer, cxEdit, dxSkinsCore, dxSkinBasic,
 dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee,
 dxSkinDarkroom, dxSkinDarkSide, dxSkinDevExpressDarkStyle,
 dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast,
 dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky,
 dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins,
 dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
 dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
 dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
 dxSkinOffice2013LightGray, dxSkinOffice2013White,
 System.Net.HttpClientComponent, dxSkinOffice2016Colorful,
 dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful,
 dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven,
 dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver,
 dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld,
 dxSkinTheBezier, dxSkinsDefaultPainters, dxSkinValentine,
 dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark,
 dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint,
 dxSkinXmas2008Blue, Vcl.Menus, Vcl.StdCtrls, dxGDIPlusClasses, cxImage,
 cxButtons, cxTextEdit, IdBaseComponent, System.JSON, IdComponent,
 IdTCPConnection, DateUtils,
 IdTCPClient, IdHTTP, Vcl.ComCtrls, dxCore, cxDateUtils, cxMaskEdit,
 cxDropDownEdit, cxCalendar;

type
 TForm2 = class(TForm)
   Label1: TLabel;
   Label2: TLabel;
   Label4: TLabel;
   cxtcED: TcxTextEdit;
   cxAdEd: TcxTextEdit;
   cxSoyadED: TcxTextEdit;
   Kontrol: TcxButton;
   cxImage1: TcxImage;
   cxImage2: TcxImage;
   Memo1: TMemo;
   cxDateEdit1: TcxDateEdit;
   cxButton1: TcxButton;
   IdHTTP1: TIdHTTP;
   procedure KontrolClick(Sender: TObject);
   procedure cxButton1Click(Sender: TObject);
 private
   procedure kimlikonay;
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.cxButton1Click(Sender: TObject);
var
 gun, ay, yil: String;
begin
 yil := YearOf(cxDateEdit1.Date).ToString;
 ay := MonthOf(cxDateEdit1.Date).ToString;
 gun := DayOf(cxDateEdit1.Date).ToString;
 Showmessage(gun);
 Showmessage(ay);
 Showmessage(yil);
end;

procedure TForm2.kimlikonay();
Var
 HTMLStream: TStringStream;
 PostData: TStringList;
 response, Error, status: string;
 JSonValue: TJSonValue;
 gun, ay, yil: String;
Begin
 if cxDateEdit1.Text = '' then
 Begin
   Showmessage('Tarih Girin');
   exit;
 End;

 try
   PostData := TStringList.Create;
   yil := YearOf(cxDateEdit1.Date).ToString;
   ay := MonthOf(cxDateEdit1.Date).ToString;
   gun := DayOf(cxDateEdit1.Date).ToString;
   try
     PostData.Add('method=verifiedTc');
     PostData.Add('tc=' + cxtcED.Text);
     PostData.Add('name=' + cxAdEd.Text);
     PostData.Add('surname=' + cxSoyadED.Text);
     PostData.Add('day=' + gun);
     PostData.Add('month=' + ay);
     PostData.Add('year=' + yil);
     IdHTTP1.Request.CustomHeaders.Values['Authorization'] :=
       '...........';
     response := IdHTTP1.Post
       ('https://....../...../..../index.php?SERVICE=Verified',
       PostData);

     JSonValue := TJSONObject.ParseJSONValue(response);
     status := JSonValue.GetValue<string>('status');

     if (status = '200') then
     Begin
       Showmessage('Tc Kimlik No Onaylandı');
       Showmessage(status);
       Memo1.Text := response;
       cxImage1.visible := True;
       cxImage2.visible := False;

     End;
   finally

     Memo1.Text := response;
     PostData.Free;
   end;

 except
   on E: EIdHTTPProtocolException do

   Begin
     if E.ErrorCode = 400 then
       Memo1.Text := E.ErrorMessage;
     cxImage1.visible := False;
     cxImage2.visible := True;

   End;
 end;

End;

procedure TForm2.KontrolClick(Sender: TObject);
begin
 kimlikonay();
end;

end.

merhaba haklısınız ekeldim
Cevapla
#8
Estağfurullah, üstadım http 400 (Bad Request) hatalı istek anlamına gelir yani size hata mesajından başka bir cevap dönmez, eğer çıktıyı belirtiğiniz gibi vermek istiyorsanız, http 400 hatası aldığınızda kırmızıyla altını çizdiğiniz gibi hazır response(string) ifade hazırlayın, 400 hatası oluştuğunda direk o hazır mesajı gösterin kullanıcıya.
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.
https://play.google.com/store/apps/developer?id=ONGUN
Cevapla
#9
(29-03-2021, Saat: 17:39)savasabd Adlı Kullanıcıdan Alıntı: Estağfurullah, üstadım http 400 (Bad Request) hatalı istek anlamına gelir yani size hata mesajından başka bir cevap dönmez, eğer çıktıyı belirtiğiniz gibi vermek istiyorsanız, http 400 hatası aldığınızda kırmızıyla altını çizdiğiniz gibi hazır response(string) ifade hazırlayın, 400 hatası oluştuğunda direk o hazır mesajı gösterin kullanıcıya.

evet ama sunucudan tek cevap değil birden fazla cevap gelebiliyor misal 

wmz4Rf.png

Fy8ONo.png


pZWDwf.png

gibi
Cevapla
#10
(29-03-2021, Saat: 17:46)Mesut Adlı Kullanıcıdan Alıntı:
(29-03-2021, Saat: 17:39)savasabd Adlı Kullanıcıdan Alıntı: Estağfurullah, üstadım http 400 (Bad Request) hatalı istek anlamına gelir yani size hata mesajından başka bir cevap dönmez, eğer çıktıyı belirtiğiniz gibi vermek istiyorsanız, http 400 hatası aldığınızda kırmızıyla altını çizdiğiniz gibi hazır response(string) ifade hazırlayın, 400 hatası oluştuğunda direk o hazır mesajı gösterin kullanıcıya.

evet ama sunucudan tek cevap değil birden fazla cevap gelebiliyor misal 

wmz4Rf.png

Fy8ONo.png


pZWDwf.png

gibi

Anladım, tek bir hatadan kaynaklanmıyor bad request, farklı hatalardan kaynaklanabiliyor, peki benim yukarda yazdığım kodda da hata mesjları çeşitli şekilde dönüyor mu?
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.
https://play.google.com/store/apps/developer?id=ONGUN
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Decimal Ayraç problemi ARM 3 430 27-06-2026, Saat: 17:12
Son Yorum: mcuyan
  SQL Table Type parametre gecisi hakkında (Çözüldü) adelphiforumz 1 397 09-04-2026, Saat: 15:53
Son Yorum: adelphiforumz
  ComPort komponenti problemi. enigma 3 442 17-03-2026, Saat: 18:38
Son Yorum: enigma
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 5.175 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
  wsdl veri çekme hatası tuna 6 1.730 15-01-2025, Saat: 16:54
Son Yorum: hi_selamlar



Konuyu Okuyanlar: 1 Ziyaretçi