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
  PNG Glyph - "Invalid graphic format" hatası Cyb3r 1 45 Dün, Saat: 06:22
Son Yorum: Ahmet İPEKÇİ
  OrangeUIStyles Kurulum hatası serdar 19 2.646 02-06-2020, Saat: 10:05
Son Yorum: selcukaktas
  [ÇÖZÜLDÜ]Chart Hatası hk. wiseman 5 375 05-05-2020, Saat: 17:50
Son Yorum: wiseman
  Indy TCP Server-Client Sorularım mcansız 29 1.765 24-04-2020, Saat: 11:13
Son Yorum: nguzeller
  Json Parse hatası arsl01 2 479 04-01-2020, Saat: 18:31
Son Yorum: arsl01



Konuyu Okuyanlar: 1 Ziyaretçi