🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi
2 messages
2 total messages Started by Roman Tyczka Mon, 07 Nov 2016 14:19
Berlin, SOAP i header
#345354
Author: 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
Re: Berlin, SOAP i header
#345357
Author: mmm
Date: Thu, 10 Nov 2016 12:59
7 lines
968 bytes
>
> Jak zmusić Delphiowego SOAPa, by prawidłowo generował requesty?
>

https://www.google.pl/search?q=soap%3AHeader+delphi+HTTPRIO

M
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads