Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Rest Request Parametre Ekleme
#1
Merhaba

Kendi hazırladığım Rest serverdan bilgi alıyorum. SoapUI ve Rest Debugger ile 3 header parametresi gönderiyorum ve json bilgi dönüyor. Aynı parametreleri kod ile ekleyerek execute ettiğimde 400 bad request hatası alıyorum. Rest Debugger den kopyaladığım komponentleri olduğu gibi çalıştırdığımda hata vermiyor. Sadece request.params ı clear ederek yeni değeri ekliyorum ama hata veriyor. sebebi nedir? 

SIP_RestRequest.Params.Clear;
  ReqParamStr := IntToStr(MasaTuru);  
 SIP_RestRequest.Params.AddItem('KULL_SIRA', ReqParamStr, TRESTRequestParameterKind.pkHTTPHEADER, [poDoNotEncode]);
 ReqParamStr := GuvKodu;
 SIP_RestRequest.Params.AddItem('GUV_KODU', ReqParamStr, TRESTRequestParameterKind.pkHTTPHEADER, [poDoNotEncode]);
 ReqParamStr := IzinGuid;
 SIP_RestRequest.Params.AddItem('KULL_GUID', ReqParamStr, TRESTRequestParameterKind.pkHTTPHEADER, [poDoNotEncode]);  
 SIP_RestRequest.Method   := TRESTRequestMethod.rmPOST;
 try
   SIP_RestRequest.Execute;
 
Cevapla
#2
(03-02-2026, Saat: 14:56)m_ekici Adlı Kullanıcıdan Alıntı: Merhaba

Kendi hazırladığım Rest serverdan bilgi alıyorum. SoapUI ve Rest Debugger ile 3 header parametresi gönderiyorum ve json bilgi dönüyor. Aynı parametreleri kod ile ekleyerek execute ettiğimde 400 bad request hatası alıyorum. Rest Debugger den kopyaladığım komponentleri olduğu gibi çalıştırdığımda hata vermiyor. Sadece request.params ı clear ederek yeni değeri ekliyorum ama hata veriyor. sebebi nedir? 

SIP_RestRequest.Params.Clear;
  ReqParamStr := IntToStr(MasaTuru);  
 SIP_RestRequest.Params.AddItem('KULL_SIRA', ReqParamStr, TRESTRequestParameterKind.pkHTTPHEADER, [poDoNotEncode]);
 ReqParamStr := GuvKodu;
 SIP_RestRequest.Params.AddItem('GUV_KODU', ReqParamStr, TRESTRequestParameterKind.pkHTTPHEADER, [poDoNotEncode]);
 ReqParamStr := IzinGuid;
 SIP_RestRequest.Params.AddItem('KULL_GUID', ReqParamStr, TRESTRequestParameterKind.pkHTTPHEADER, [poDoNotEncode]);  
 SIP_RestRequest.Method   := TRESTRequestMethod.rmPOST;
 try
   SIP_RestRequest.Execute;
 

Merhabalar,

Acaba SIP_RestRequest.Params.Clear; ettiğiniz için Content-Type: application/json, Accept: application/json vb gidiyor olabilir mi?

Gibi bir ilave yapsak acaba.

SIP_RestRequest.Params.Clear;
SIP_RestRequest.Params.AddItem('Content-Type', 'application/json', pkHTTPHEADER);
SIP_RestRequest.Params.AddItem('Accept', 'application/json', pkHTTPHEADER);
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
Merhaba
teşekkür ederim ama olmadı.
Benzer sonuçları yapay zekalar önermişti ama olmadı. hala saçma bir şekilde hata veriyor.

bu denemeyi FMX form üzerinde yapıyorum. ve SIP_Restrequesrt ve komponent gurubu TDataModule üzerinde.
Cevapla
#4
RESTDebugger ile çalışan bileşenlerin 3 ünü de kopyalayıp, text formatında paylaşırsanız yardımcı olabilirim.
Begin : = end / 2;
Cevapla
#5
object SIP_RestClient: TRESTClient
  Accept = 'application/json, text/plain; q=0.9, text/html;q=0.8,'
 AcceptCharset = 'UTF-8, *;q=0.8'
 BaseURL = 'http://127.0.0.1:8080/pvc/v1/MasaDurum'
 ContentType = 'application/x-www-form-urlencoded'
 Params = <>
 HandleRedirects = True
 RaiseExceptionOn500 = False
 Left = 264
 Top = 24
end

object SIP_RestRequest: TRESTRequest
 Client = SIP_RestClient
 Method = rmPOST
 Params = <
   item
     Kind = pkHTTPHEADER
     name = 'KULL_SIRA'
     Value = '3'
   end
   item
     Kind = pkHTTPHEADER
     name = 'GUV_KODU'
     Value = '112233'
   end
   item
     Kind = pkHTTPHEADER
     name = 'KULL_GUID'
     Value = '{xxxxxx}'
   end>
 Response = SIP_RestResponse
 SynchronizedEvents = False
 Left = 360
 Top = 24
end

object SIP_RestResponse: TRESTResponse
 ContentType = 'application/json'
 Left = 464
 Top = 24
end
Cevapla
#6
Kodunuzda AddItem metodunda TRESTRequestParameterOptions parametresinde poDoNotEncode etmişsiniz. 
Ama bileşende bu özellik set edilmemiş. Muhtemelen bundan dolayı bileşen çalışıyordur. 

    item
      Kind = pkHTTPHEADER
      Name = 'KULL_SIRA'
      Options = [poDoNotEncode] Bu kısım olmadığı için kodunuzda da bu parametre olmasın.
      Value = '3'
    end>
Begin : = end / 2;
Cevapla
#7
İlk yazdığım kodda var. O haliyle de hata veriyor. İlginç olan exception a düşmesi. exception access violaton verdiyor ama da serverdan 400 hata kodu da dönüyor.
Cevapla
#8
SIP_RestRequest.Params.AddItem('KULL_SIRA', ReqParamStr, TRESTRequestParameterKind.pkHTTPHEADER, []);
Yukarıdaki gibi göndermeyi denediniz mi?
Begin : = end / 2;
Cevapla
#9
@m_ekici;
Son durum nedir?
Begin : = end / 2;
Cevapla
#10
(06-02-2026, Saat: 09:51)RAD Coder Adlı Kullanıcıdan Alıntı: @m_ekici;
Son durum nedir?


Projeyi sildim, 
her şeyi sıfırdan yeniden yaptım, aynı kodlar. Çalıştı.

Vaktinizi aldım, teşekkür ederim.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Rest servis api uygulaması yapma tuna 13 1.175 17-10-2025, Saat: 18:40
Son Yorum: tuna
  TMS Web Core- REST İşlemlerini Nasıl Yapabilirim? kajmerantime 0 384 13-06-2025, Saat: 14:07
Son Yorum: kajmerantime
  Rest Server Hata m_ekici 2 698 09-03-2025, Saat: 13:32
Son Yorum: m_ekici
  Rest Server e gönderilen bilgiler m_ekici 8 1.457 17-02-2025, Saat: 11:43
Son Yorum: m_ekici
  Delphi IDE project kısmına Klasör ekleme yanniosman 1 523 01-12-2024, Saat: 12:17
Son Yorum: frmman



Konuyu Okuyanlar: 1 Ziyaretçi