Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[Çözüldü] - WSDL importer / Unable to load WSDL File/Location Hatası
#11
IP'niz değişince yeni IP'yi karşı tarafa bildirdiniz mi?
Cevapla
#12
(20-05-2024, Saat: 14:05)engerex Adlı Kullanıcıdan Alıntı: IP'niz değişince yeni IP'yi karşı tarafa bildirdiniz mi?

Evet hocam bildirdik zaten sunucu üzerinde dediğim gibi testlerde sıkıntı yaşamıyorum
Cevapla
#13
Selamlar
Ekteki dosya işinizi görür umarım. bazen yeni versiyonlarda import yapınca sorun oluyorsu.
2007 üzerinden import ettim


.zip   CustomerTransactionService.zip (Dosya Boyutu: 8,2 KB / İndirme Sayısı: 4)
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#14
(20-05-2024, Saat: 14:01)mrmarman Adlı Kullanıcıdan Alıntı: WSDL import işlemlerini böyle yaptım ve bugüne kadar sorun yaşamadım.
Sizin bot server'a nasıl erişiyor bilemem ama POSTMAN'da yapılan ne varsa basitçe Delphi yakasında da yapılabilir.

HTTPRIO kullanarak da erişebilirsiniz NetHTTPClient ile de..

Zaten PAS oluştuktan sonra bu söylediklerinize ihtiyaç kalmıyor olması lazım. Serialize edilme aşamasında kaynak WSDL olabilir ama PAS olduktan sonra bir daha ihtiyaç kalmıyor olması lazım.  

WSDL her defasında yeniden mi import ediliyor sizin projede ?

Bunu yapmak için WSDL içeriğini sıradan bir WEB sayfası indirir gibi indirin, sonra da WSDLImp.exe ile bunu PAS üreterek kullanmayı deneyin. BOT'unuz bu şekilde evrilirse sorunu bir sonraki çözüme kadar rafa kaldırmış olursunuz.

Hocam dediğiniz gibi de yapıyorum import yaparken sorun vermese bile webservis çağırdığımda aynı hatayı alıyorum açılayıcı olması açısından yotube yükledim aşağıda paylaşıyorum

saygıalrımı sunarım.



Cevapla
#15
(20-05-2024, Saat: 14:24)adelphiforumz Adlı Kullanıcıdan Alıntı: Selamlar
Ekteki dosya işinizi görür umarım. bazen yeni versiyonlarda import yapınca sorun oluyorsu.
2007 üzerinden import ettim

hocam teşekkür ederim ama sorun devam ediyor malesef aynen
Cevapla
#16
Gelen cevap HTML olduğu için şöyle bir yorumum olacak.

* Delphi WSDL import aracının talep ettiği format karşı tarafın Auth filtresine takılıyor olmalı. Türkçe mesaj dönüyor olması ve HTML formunda bir içerik olmasından bu sonuca kolayca varabiliyorum. Anlamadığım konu (sizinle ilgili değil Delphi'nin WSDL Importer aracı) boş bir proje oluşturdum ve önce USER-AGENT'i boşaltıp bir tane '!' vs. çağrı yaptım yine WSDL içerik döndü. WSDL içerik alma isteği sırasında nasıl bir trafik yapıyor ki karşı taraf refuse etsin.

var
 LUrl      : string;
 LResponse : string;
begin
 LUrl := 'https://boa.vakifkatilim.com.tr/BOA.Integration.WCFService/BOA.Integration.CustomerTransaction/CustomerTransactionService.svc?singlewsdl';
 NetHTTPClient1.UserAgent := '!';
 LResponse := NetHTTPClient1.Get( LUrl ).ContentAsString;
 memo1.Lines.Text := XMLBeauty( LResponse );

end;


Sonra da buldum :   

NetHTTPClient1.ContentType := '!';

deyince hata döndü
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#17
(20-05-2024, Saat: 18:04)mrmarman Adlı Kullanıcıdan Alıntı: Gelen cevap HTML olduğu için şöyle bir yorumum olacak.

* Delphi WSDL import aracının talep ettiği format karşı tarafın Auth filtresine takılıyor olmalı. Türkçe mesaj dönüyor olması ve HTML formunda bir içerik olmasından bu sonuca kolayca varabiliyorum. Anlamadığım konu (sizinle ilgili değil Delphi'nin WSDL Importer aracı) boş bir proje oluşturdum ve önce USER-AGENT'i boşaltıp bir tane '!' vs. çağrı yaptım yine WSDL içerik döndü. WSDL içerik alma isteği sırasında nasıl bir trafik yapıyor ki karşı taraf refuse etsin.

var
 LUrl      : string;
 LResponse : string;
begin
 LUrl := 'https://boa.vakifkatilim.com.tr/BOA.Integration.WCFService/BOA.Integration.CustomerTransaction/CustomerTransactionService.svc?singlewsdl';
 NetHTTPClient1.UserAgent := '!';
 LResponse := NetHTTPClient1.Get( LUrl ).ContentAsString;
 memo1.Lines.Text := XMLBeauty( LResponse );

end;


Sonra da buldum :   

NetHTTPClient1.ContentType := '!';

deyince hata döndü

Bende anlamadım hocam işin bir tuhaf yanı da daha önce de aynı servis kullanılarak import edilmiş ve class yapısı kullanılarak request ve responselar yapılmış ve çalışıyormş nedense şu an yapamıyorum
Cevapla
#18
Ben ContentType değiştirdiğimde tam hata şöyle. Siz de kendi mesajınız kırpıldığı kadarını merak ediyor olabilirsiniz. 

Tabi sizin destek numaranız size özel üretilecektir. Bu numarayı okumaya çalışıp, Vakıf Katılım'dan sormak isteyebilirsiniz.

<html>
 <head>
   <title>Erişiminiz Engellenmiştir</title>
 </head>
 <body>Uygulama Güvenlik Duvarı tarafından isteğiniz engellenmiştir. <br>
   <br>Destek numaranız: 4715018990765511531 <br>
   <br>
   <a href='javascript:history.back();'>[Geri]</a>
 </body>
</html>


Bu hatayı almak için uyguladığım kod


uses
  System.Net.HttpClient, System.Net.HttpClientComponent;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  LClient   : TNetHttpClient;
  LUrl      : string;
  LResponse : IHTTPResponse;
  LBody     : TStringStream;
begin
  LUrl := 'https://boa.vakifkatilim.com.tr/BOA.Integration.WCFService/BOA.Integration.CustomerTransaction/CustomerTransactionService.svc?singlewsdl';
  LClient := TNetHTTPClient.Create(nil);
  try
    LBody := TStringStream.Create;
    try
      LClient.ContentType := '!';
      LClient.AcceptEncoding := 'UTF-8';
      LResponse := LClient.Get( LUrl, LBody );

      if Assigned(LResponse) then
      begin
        if LResponse.StatusCode = 200
        then
        begin
          memo1.Lines.Text :=   'Status OK geldi'
                              + sLineBreak
                              + Utf8ToWideString( shortstring(LBody.DataString) )
                              + sLineBreak
        end
        else
          memo1.Lines.Text :=   'Status FAIL geldi'
                              + sLineBreak
                              + LBody.DataString
      end;
    finally
      FreeAndNil(LBody);
    end;
  finally
    FreeAndNil(LClient);
  end;

end;


Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#19
(20-05-2024, Saat: 19:11)mrmarman Adlı Kullanıcıdan Alıntı: Ben ContentType değiştirdiğimde tam hata şöyle. Siz de kendi mesajınız kırpıldığı kadarını merak ediyor olabilirsiniz. 

Tabi sizin destek numaranız size özel üretilecektir. Bu numarayı okumaya çalışıp, Vakıf Katılım'dan sormak isteyebilirsiniz.

<html>
 <head>
   <title>Erişiminiz Engellenmiştir</title>
 </head>
 <body>Uygulama Güvenlik Duvarı tarafından isteğiniz engellenmiştir. <br>
   <br>Destek numaranız: 4715018990765511531 <br>
   <br>
   <a href='javascript:history.back();'>[Geri]</a>
 </body>
</html>


Bu hatayı almak için uyguladığım kod


uses
  System.Net.HttpClient, System.Net.HttpClientComponent;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  LClient   : TNetHttpClient;
  LUrl      : string;
  LResponse : IHTTPResponse;
  LBody     : TStringStream;
begin
  LUrl := 'https://boa.vakifkatilim.com.tr/BOA.Integration.WCFService/BOA.Integration.CustomerTransaction/CustomerTransactionService.svc?singlewsdl';
  LClient := TNetHTTPClient.Create(nil);
  try
    LBody := TStringStream.Create;
    try
      LClient.ContentType := '!';
      LClient.AcceptEncoding := 'UTF-8';
      LResponse := LClient.Get( LUrl, LBody );

      if Assigned(LResponse) then
      begin
        if LResponse.StatusCode = 200
        then
        begin
          memo1.Lines.Text :=   'Status OK geldi'
                              + sLineBreak
                              + Utf8ToWideString( shortstring(LBody.DataString) )
                              + sLineBreak
        end
        else
          memo1.Lines.Text :=   'Status FAIL geldi'
                              + sLineBreak
                              + LBody.DataString
      end;
    finally
      FreeAndNil(LBody);
    end;
  finally
    FreeAndNil(LClient);
  end;

end;



Hocam yoldayım eve geçiyorum dediğiniz gibi yapıp bir kontrolü yapacağım neticesine göre de hareket edeceğim sonucu buraya yazacağım
Cevapla
#20
Eğer VakifKatilim size çözüm sunmazsa size çözüm önerim şöyle olacak.

* Kendi projeniz için bir klasör belirleyin
* WSDL'yi daima kendiniz download edin.
* Sonra da HTTPRIO'ya file olarak kullanacağı şekilde parametresine bu indirdiğiniz WSDL' XML dosyasını verin.

nasıl mı sizin PAS içindeki fonksiyon aşağıdaki şekilde.

İlk parametre TRUE zaten 
İkinci parametre 'Addr' için download ettiğiniz XML dosya yolunu verin. Addr boş olmadığı için def olan const içerik devre dışı kalacaktır.  

Böylece Download edilemediği için taca çıkan topu yeniden oyuna sokmuş olacaksınız.


function GetICustomerTransactionService(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): ICustomerTransactionService;
const
  defWSDL = '.\CustomerTransactionService.xml';
  defURL  = 'https://boa.vakifkatilim.com.tr/BOA.Integration.WCFService/BOA.Integration.CustomerTransaction/CustomerTransactionService.svc/Basic';
  defSvc  = 'CustomerTransactionService';
  defPrt  = 'BasicHttpBinding_ICustomerTransactionService';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as ICustomerTransactionService);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Runtime error 236 hatası yhackup 6 710 29-07-2026, Saat: 00:10
Son Yorum: emailx45
  matematiksel karşılaştırma hatası nevzatc 7 995 14-04-2026, Saat: 06:36
Son Yorum: emailx45
  SQL Table Type parametre gecisi hakkında (Çözüldü) adelphiforumz 1 397 09-04-2026, Saat: 15:53
Son Yorum: adelphiforumz
  Delphi ile SQL server bağlantı hatası yakalama Under 20 3.159 21-11-2025, Saat: 15:24
Son Yorum: mrmarman
  OpenSSL Hatası mcuyan 1 675 29-04-2025, Saat: 02:28
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi