Delphi Can
Web Servis SOAP - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Web Servis SOAP (/showthread.php?tid=7618)

Sayfalar: 1 2 3


Web Servis SOAP - eyln - 04-03-2024

Merhaba,
Yine web servislerle başım belada...Bir bankanın web servisinden veri almaya çalışıyorum. Dökümanda şöyle bir bilgi vermiş ancak bunu Delphi'ye uyarlayamadım.
Konu hakkında desteğinizi rica ederim.

Kod:
Webservis, SoapUI üzerinden denenirken WCF servisleri için “WS-Addressing” alanı true olarak set edilmeli ve aşağıda ekran görüntüsü bulunan “Add default wsa:To:” alanı seçili olmalıdır.

Bu şekilde SOAPUI 'da çalışıyor.



Örnek bir java kodu vermişler


Kod:
// Enable WS - Adressing
iSOnlineServis = sOnlineService.getMetadataExchangeHttpsBindingISOnlineEkstreServis(new
AddressingFeature(true, true));



Cvp: Web Servis SOAP - RAD Coder - 04-03-2024

Delphi tarafında, hangi aşamada olduğunuzu ve hangi işlemi yaparken ne gibi sorunla karşılaştığınızı yazarsanız, daha hızlı çözüm bulabilirsiniz.


Cvp: Web Servis SOAP - eyln - 04-03-2024

Şöyle bir başarısız denemem oldu.

Kod:
 var
 servis : ISOnlineEkstreServis;
 istek  :   DtoEkstreSorgu2;
 cevap  :   DtoEkstreCevap2;

 tarih:TXSDateTime;


begin
      servis :=SOnlineEkstreServis.GetISOnlineEkstreServis(true);


   
     istek :=DtoEkstreSorgu.Create;
     tarih :=  TXSDateTime.Create;
     tarih.AsDateTime :=date;


     istek.MusteriNo :='*****';
     istek.KurumKullanici:= '****';
     istek.Sifre:= '*****';
     istek.SorguBaslangicTarihi:= '2024-03-01 00:00';
     istek.SorguBitisTarihi:= '2024-03-02 23:59';
     istek.HesapNo := '*****';


     cevap :=servis.GetirHareket(istek);

     Memo1.Lines.Add(cevap.IslemKodu);



Cvp: Web Servis SOAP - RAD Coder - 04-03-2024

(04-03-2024, Saat: 13:17)eyln Adlı Kullanıcıdan Alıntı: Şöyle bir başarısız denemem oldu.

Kod:
 var
 servis : ISOnlineEkstreServis;
 istek  :   DtoEkstreSorgu2;
 cevap  :   DtoEkstreCevap2;

 tarih:TXSDateTime;


begin
      servis :=SOnlineEkstreServis.GetISOnlineEkstreServis(true);


   
     istek :=DtoEkstreSorgu.Create;
     tarih :=  TXSDateTime.Create;
     tarih.AsDateTime :=date;


     istek.MusteriNo :='*****';
     istek.KurumKullanici:= '****';
     istek.Sifre:= '*****';
     istek.SorguBaslangicTarihi:= '2024-03-01 00:00';
     istek.SorguBitisTarihi:= '2024-03-02 23:59';
     istek.HesapNo := '*****';


     cevap :=servis.GetirHareket(istek);

     Memo1.Lines.Add(cevap.IslemKodu);

Hata mesajını da iletebilir misiniz


Web Servis SOAP - RAD Coder - 04-03-2024

Not: Delphi kodlarınızı kod biçimlendirme (Mesaj editöründeki toolbar üzerinde Delphi simgesi; Delphi Kod Ekle butonu) aracını kullanarak yazarsanız, iyi olur.


Cvp: Web Servis SOAP - eyln - 04-03-2024

Bankanın dökümanındaki hatayı veriyor.

Kod:
Not 1: Webservis, SoapUI üzerinden denenirken WCF servisleri için “WS-Addressing” alanı true olarak set edilmeli ve aşağıda ekran görüntüsü bulunan “Add default wsa:To:” alanı seçili olmalıdır.

SoapUI üzerinden yapılan sorgulama işlemlerinde yukarıdaki seçeneklerin seçilmemesi durumunda uygulama güvenlik duvarı tarafından “The requested URL was rejected. Please consult with your administrator Your support id is : XXXXXXXXXXXXXXX” hata mesajı ile işlem engellenmektedir.

Dökümanda ne yapılması gerektiği belirtilmiş.(Enable WS - Adressing)Örnek java kodu verilmiş. Ancak bunu Delphi'de nasıl yapacağız problem bu



Örnek java kodu

Kod:
SOnlineEkstreServis sOnlineService = new SOnlineEkstreServis();
ISOnlineEkstreServis iSOnlineServis;
// Enable WS - Adressing
iSOnlineServis = sOnlineService.getMetadataExchangeHttpsBindingISOnlineEkstreServis(new
AddressingFeature(true, true));
DtoEkstreSorgu sorgu = new DtoEkstreSorgu();



Cvp: Web Servis SOAP - RAD Coder - 04-03-2024

(04-03-2024, Saat: 14:10)eyln Adlı Kullanıcıdan Alıntı: Bankanın dökümanındaki hatayı veriyor.

Kod:
Not 1: Webservis, SoapUI üzerinden denenirken WCF servisleri için “WS-Addressing” alanı true olarak set edilmeli ve aşağıda ekran görüntüsü bulunan “Add default wsa:To:” alanı seçili olmalıdır.

SoapUI üzerinden yapılan sorgulama işlemlerinde yukarıdaki seçeneklerin seçilmemesi durumunda uygulama güvenlik duvarı tarafından “The requested URL was rejected. Please consult with your administrator Your support id is : XXXXXXXXXXXXXXX” hata mesajı ile işlem engellenmektedir.

Dökümanda ne yapılması gerektiği belirtilmiş.(Enable WS - Adressing)Örnek java kodu verilmiş. Ancak bunu Delphi'de nasıl yapacağız problem bu



Örnek java kodu

Kod:
SOnlineEkstreServis sOnlineService = new SOnlineEkstreServis();
ISOnlineEkstreServis iSOnlineServis;
// Enable WS - Adressing
iSOnlineServis = sOnlineService.getMetadataExchangeHttpsBindingISOnlineEkstreServis(new
AddressingFeature(true, true));
DtoEkstreSorgu sorgu = new DtoEkstreSorgu();

Sorunun kaynağı size iletilmiş; uygulama güvenlik duvarı tarafından engelleniyor.
Güvenlik duvarını devre dışı bırakılması (kurum ve şirketler için WLAN olarak bu politikanın uygulanması) veya yalnızca bu http trafiği/portuna geçiş izni verilmesi gerekiyor.


Web Servis SOAP - eyln - 04-03-2024

Hayır şu işlemin ( "WCF servisleri için “WS-Addressing” alanı true olarak set edilmeli") Delphide yapılması gerekiyor. Java'da bunun nasıl yapılacağını örnek kod ile belirtmiş.

"iSOnlineServis = sOnlineService.getMetadataExchangeHttpsBindingISOnlineEkstreServis(new
AddressingFeature(true, true));

Delphi'de bir yolu olmalı diye düşünüyorum.


Cvp: Web Servis SOAP - RAD Coder - 04-03-2024

(04-03-2024, Saat: 14:48)eyln Adlı Kullanıcıdan Alıntı: Hayır şu işlemin ( "WCF servisleri için “WS-Addressing” alanı true olarak set edilmeli") Delphide yapılması gerekiyor. Java'da bunun nasıl yapılacağını örnek kod ile belirtmiş.

"iSOnlineServis = sOnlineService.getMetadataExchangeHttpsBindingISOnlineEkstreServis(new
AddressingFeature(true, true));

Delphi'de bir yolu olmalı diye düşünüyorum.

WSDL'i impot etiyseniz; AddressingFeature fonksiyon olarak tanımlı bir tip olmalı.
İstek yapmadan önce bu tipi oluşturmalı ve getMetadataExchangeHttpsBindingISOnlineEkstreServis metodu içinde karşı tarafa göndermelisiniz.


Cvp: Web Servis SOAP - eyln - 04-03-2024

(04-03-2024, Saat: 15:05)RAD Coder Adlı Kullanıcıdan Alıntı:
(04-03-2024, Saat: 14:48)eyln Adlı Kullanıcıdan Alıntı: Hayır şu işlemin ( "WCF servisleri için “WS-Addressing” alanı true olarak set edilmeli") Delphide yapılması gerekiyor. Java'da bunun nasıl yapılacağını örnek kod ile belirtmiş.

"iSOnlineServis = sOnlineService.getMetadataExchangeHttpsBindingISOnlineEkstreServis(new
AddressingFeature(true, true));

Delphi'de bir yolu olmalı diye düşünüyorum.

WSDL'i impot etiyseniz; AddressingFeature fonksiyon olarak tanımlı bir tip olmalı.
İstek yapmadan önce bu tipi oluşturmalı ve getMetadataExchangeHttpsBindingISOnlineEkstreServis metodu içinde karşı tarafa göndermelisiniz.

İmport ettim AddressingFeature böyle tanımlı bir tip bulunmuyor.