Article View: pl.comp.lang.delphi
Article #345354Berlin, SOAP i header
From: Roman Tyczka
Date: Mon, 07 Nov 2016 14:19
Date: Mon, 07 Nov 2016 14:19
70 lines
3393 bytes
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-mailShow 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