🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #345354

Berlin, SOAP i header

#345354
From: Roman Tyczka
Date: Mon, 07 Nov 2016 14:19
70 lines
3393 bytes
Jest ministerialna usługa od REGONów, działa na SOAPie, oto wsdl:

https://wyszukiwarkaregontest.stat.gov.pl/wsBIR/wsdl/UslugaBIRzewnPubl.xsd

Importuję go do Delphi i powstaje tradycyjnie plik pas z interfejsami
dostępowymi.

Wołam metodę od zalogowania:

var
  HTTPRIO: THTTPRIO;
  SessionToken: string;
  UslugaBIRzewnPubl: IUslugaBIRzewnPubl;
begin
  HTTPRIO := THTTPRIO.Create(nil);
  HTTPRIO.OnBeforeExecute := BeforeExecuteEvent;
  HTTPRIO.OnAfterExecute := AfterExecuteEvent;
  UslugaBIRzewnPubl := GetIUslugaBIRzewnPubl(False, '', HTTPRIO);
  SessionToken  := UslugaBIRzewnPubl.Zaloguj(UserKey);
end;

i w linii UslugaBIRzewnPubl.Zaloguj(UserKey) dostaję wyjątek:

The SOAP action specified on the message, '', does not match the HTTP SOAP
Action:
'http://CIS/BIR/PUBL/2014/07/IUslugaBIRzewnPubl/Zaloguj'

Request wygląda tak:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body>
<Zaloguj
xmlns="http://CIS/BIR/PUBL/2014/07"><pKluczUzytkownika>abcde12345abcde12345</pKluczUzytkownika>
</Zaloguj>
</SOAP-ENV:Body></SOAP-ENV:Envelope>


a według dokumentacji powinien mieć jeszcze sekcję <soap:Header> z
definicją <Action>, czyli powinien wyglądać tak:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns="http://CIS/BIR/PUBL/2014/07"> 
   <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Action>http://CIS/BIR/PUBL/2014/07/IUslugaBIRzewnPubl/Zaloguj</wsa:Action>
<wsa:To>https://wyszukiwarkaregontest.stat.gov.pl/wsBIR/UslugaBIRzewnPubl.svc</wsa:To> 
   </soap:Header>
   <soap:Body>
      <ns:Zaloguj>
         <ns:pKluczUzytkownika>tutaj
luczużytkownika...</ns:pKluczUzytkownika>
      </ns:Zaloguj>
   </soap:Body>
</soap:Envelope>

Zatem brakuje tego:

   <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Action>http://CIS/BIR/PUBL/2014/07/IUslugaBIRzewnPubl/Zaloguj</wsa:Action>
<wsa:To>https://wyszukiwarkaregontest.stat.gov.pl/wsBIR/UslugaBIRzewnPubl.svc</wsa:To> 
   </soap:Header>


Jak zmusić Delphiowego SOAPa, by prawidłowo generował requesty?

-- 
pozdrawiam
Roman Tyczka
Technical Details
Message-ID: <jf1qih9ucb9s$.dlg@tyczka.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!lightspeed.eweka!cyclone01.ams2!voer-me.highwinds-media.com!peer01.am4!peer.am4.highwinds-media.com!peer01.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!lightspeed.eweka!cyclone01.ams2!voer-me.highwinds-media.com!peer01.am4!peer.am4.highwinds-media.com!peer01.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: Roman Tyczka <noemail@because.no>
Subject: Berlin, SOAP i header
Newsgroups: pl.comp.lang.delphi
User-Agent: 40tude_Dialog/2.0.15.84
MIME-Version: 1.0
Sender: romek@tyczka.no.found
Date: Mon, 7 Nov 2016 15:19:57 +0100
Message-ID: <jf1qih9ucb9s$.dlg@tyczka.com>
Lines: 70
Organization: Telekomunikacja Polska
NNTP-Posting-Host: nat.wave.com.pl
X-Trace: 1478528396 unt-rea-a-02.news.neostrada.pl 15194 91.224.116.2:6316
X-Complaints-To: abuse@news.neostrada.pl
X-Received-Body-CRC: 999122553
X-Received-Bytes: 3216
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit