Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
internal server error (500) hatası..
#11
Status code = 500 server tarafında oluşan bir hatayı işaret eder. Gönderdiğiniz XML'nin alıcısı kimse ondan yardım almalısınız. Ayırıca aynı XML'i Postman (https://www.getpostman.com) programıyla göndermeyi deneyip sonucu izleyebilirsiniz.
WWW
Cevapla
#12
e-fatura işiyle uğraşan bir arkadaşım tam da bu konuda benden bir destek talebinde bulunmuştu dün inceledik beraber , öncelikle ilgili isteği SOAP UI ile yaptık , evet status 500 dönmesine rağmen SOAP RESPONSE XML i dönüyor ve hatanın detayları uygun bir şekilde geliyordu, işin ilginci Delphi Berlin sürümün dede ilgili hata oluştuğu durumlarda THTTPRIO un AfterExecute olayına düşülebiliyor ve SOAP RESPONSE mesajı işlenebiliyor, ancak Delphi Rio sürümünde aynı projeyi derlediğimiz de Status 500 olunca HttpRioException sınıfı bir hata fırlıyor AFterExecute olayına düşülmüyor. Berlin ve Rio nun "Soap.Rio" unitlerini karşılşatırdığımız da hiç bir fark olmadığını gözlemliyoruz, bende sorunun çözümünü merak edenlerdenim.
Cevapla
#13
Hangi entegratör üzerinden gönderim yapıyorsunuz ?
Cevapla
#14
(23-01-2020, Saat: 10:45)vkamadan Adlı Kullanıcıdan Alıntı: e-fatura işiyle uğraşan bir arkadaşım tam da bu konuda benden bir destek talebinde bulunmuştu dün inceledik beraber , öncelikle ilgili isteği SOAP UI ile yaptık , evet status 500 dönmesine rağmen SOAP RESPONSE XML i dönüyor ve hatanın detayları uygun bir şekilde geliyordu, işin ilginci Delphi Berlin sürümün dede ilgili hata oluştuğu durumlarda THTTPRIO un AfterExecute  olayına düşülebiliyor ve SOAP RESPONSE mesajı işlenebiliyor, ancak Delphi Rio sürümünde aynı projeyi derlediğimiz de Status 500 olunca HttpRioException sınıfı bir hata fırlıyor AFterExecute olayına düşülmüyor. Berlin ve Rio nun "Soap.Rio"  unitlerini karşılşatırdığımız da hiç bir fark olmadığını gözlemliyoruz, bende sorunun çözümünü merak edenlerdenim.

Tekrar merhaba , 
İlgili sorunun kaynağı ,Delphi 10.3 Rio da  Soap.SOAPHTTPTrans uniti içinde yer alan THTTPReqResp sınıfında meydana gelen bir değişiklikle ilgili;
her web servis metodu çağrınızda bu sınıfın Execute metodu çalıştırılıyor , bu metodu epey bir değiştirmişler bu değişikliklerden birisi de (önceden yokmuş yeni eklenmiş) HTTP Respons un HTTP Status ünün kontrol eden bir yapı eklemişler bu kontrol için  CheckResponseError fonksiyonunu kullanmışlar , ilgili fonksiyon aşağıda ki gibi ;

function CheckResponseError(const AReqResp: THTTPReqResp; const AHTTPResponse: IHTTPResponse): TSOAPHttpErrorAction;
var
 LExc: ESOAPHTTPException;
begin
 Result := heaSuccess;
 if AHTTPResponse.StatusCode >= 500 then
 begin
   Result := heaError;
   LExc := ESOAPHTTPException.CreateFmt('%s (%d) - ''%s''',
     [AHTTPResponse.StatusText, AHTTPResponse.StatusCode, AReqResp.URL]);
   if Assigned(FOnHttpError) then
     FOnHttpError(AReqResp, AHTTPResponse, LExc, Result);
   case Result of
     heaSuccess,
     heaRetry:
       LExc.Free;
     heaError:
       raise LExc;
     heaAbort:
       begin
         LExc.Free;
         System.SysUtils.Abort;
       end;
   end;
 end;
end;

if AHTTPResponse.StatusCode >= 500 then  bu noktada sunucudan 500 ve üzeri bir HTTP STATUS döndüğünde hata fırlatılıp işlemin kırılması sağlanıyor ve karşıdan geçerli bir SOAP mesajı dönmüş olsa bile bizim RIO bunu işleyemiyor, bu kontrolü devre dışı bırakan bir parametrede bulunmuyor i kaynak kodda değişiklik yapmak dışında bir çözüm yok gibi.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  OrangeUIStyles Kurulum hatası serdar 17 1.708 23-03-2020, Saat: 17:39
Son Yorum: selcukaktas
  Json Parse hatası arsl01 2 320 04-01-2020, Saat: 18:31
Son Yorum: arsl01
  JSON TRESTRequest Nesnesi Hatası pro_imaj 2 385 31-12-2019, Saat: 13:55
Son Yorum: pro_imaj
Information rest debugger ile authentication hatası[ÇÖZÜLDÜ]] yokbi 2 352 25-12-2019, Saat: 17:02
Son Yorum: yokbi
  Web Server Application IIS Yayınlama Hk. pro_imaj 5 528 24-12-2019, Saat: 17:39
Son Yorum: Halil Han Badem



Konuyu Okuyanlar: 1 Ziyaretçi