[PHP] [SOAP] header gegevens toevoegen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • blaatkipje
  • Registratie: Maart 2007
  • Laatst online: 17-09 07:51
Ik ben al een dag aan het zoeken naar een oplossing voor het volgende probleem.

Ik moet verbinding maken met een soap server ( dit is met php geen probleem )
Voor de functies van de soapserver maak ik gebruik van de wsdl dus dat is geen probleem.

Alleen deze server vraagt om wsse:Security authentificatie.

Om dit te doen moet ik een extra header toevoegen aan mijn soap call. 

De extra header moet er zo uit zien

<SOAP-ENV:header>
<wsse:Security xmls:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\">
<wsse:UsernameToken wsu:Id=\"user\"
xmls:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/secext\"
xmlns:wsse=\"http://schemas.xmlsoap.org/ws/2003/06/utility\">
<wsse:Username>gebruikersnaam</wsse:Username>
<wsse:Password Type=\"wsse:PasswordText\">wachtwoord</wsse:Password>
<wsu:Created>tijd</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:header>

Ik kom voor php wel de volgende functie tegen

new SOAPHeader();
en
__setSOAPHeaders();

Alleen de documentatie voor deze functies laten nogal ter wensen over. :X

iemand enig idee hoe ik de header in mijn soap call kan krijgen?
En hoe ik kan zien wat voor xml bericht ik verstuur?

Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
Wat gebruik je om je basis SOAP-envelope op te stellen? DOM, SOAP module, nuSOAP, WSO2?

Je kunt natuurlijk altijd gewoon de header als DOMNode genereren en je gegevens toevoegen.

Acties:
  • 0 Henk 'm!

  • blaatkipje
  • Registratie: Maart 2007
  • Laatst online: 17-09 07:51
Ik gebruik nu de standaard php SOAP functie waarbij de SOAP envelope via de wsdl komt. nuSOAP heb ik geprobeerd maar de voorbeeld functies werken al niet ( ik heb gewoon een standaard mamp versie draaien ) en de classes zijn qua broncode nogal chaos.

wso2 zal ik morgen gaan bekijken, maar omdat de andere kant van dit systeem graag wil dat de wsdl wordt gebruikt zie ik een DOMnode als laatste redding

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:14

Creepy

Tactical Espionage Splatterer

Definieer "werken niet". Als je al een volle dag bezig bent met je functies kan je toch wel iets specifieker zijn? Krijg je foutmeldngen? Doen ze echt helemaal niks? Hoe heb je dat gecontroleerd (aka debuggen)?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
php soap
PHP:
1
mixed __soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )

Hier staan wel argumenten voor headers. Misschien dat je die eens na kunt zoeken?

Acties:
  • 0 Henk 'm!

  • blaatkipje
  • Registratie: Maart 2007
  • Laatst online: 17-09 07:51
Ik ben toch weer verder gegaan met nuSOAP, en na een weekend niks doen :)
, werken de headers ondertussen. in nuSOAP zit een functie setHeaders waar je een eigen header kan toevoegen ( als string ) 8)7

De fout in nuSOAP komt door wat proxy gegevens die er in de voorbeelden zitten verwerkt.

Ik loop nu nog tegen het volgende aan in nuSOAP:

PHP:
1
2
3
4
5
$params = array(
    'Kenteken' => "xxxxxx"
);

$result = $client->call('AS1', $params, 'urn:elementen.voertuigscan.rdc.nl:AS1', 'urn:elementen.voertuigscan.rdc.nl:AS1');


Alleen in het xml bestand wordt dit niet verwerkt en wordt het volgende ingevuld:

<SOAP-ENV:Body><AS1 xmlns="urn:elementen.voertuigscan.rdc.nl"/></SOAP-ENV:Body>

[ Voor 39% gewijzigd door blaatkipje op 11-08-2008 12:07 ]


Acties:
  • 0 Henk 'm!

  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Ik heb voor een project wel eens NuSOAP gebruikt. NuSOAP zelf werkte voor mij ook niet afdoende en dus heb ik via de send() functie gewoon een hard xml bestand gestuurd. 10x makkelijker.

Acties:
  • 0 Henk 'm!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 30-07 02:32
Daar kan ik in meegaan. Ik stuur mijn SOAP ook gewoon over de php://input resp. php://output. I.c.m. wat slimme eigengemaakte DOM-classes bereik je daarmee een stuk sneller en efficienter je doel is mijn ervaring.

  • blaatkipje
  • Registratie: Maart 2007
  • Laatst online: 17-09 07:51
Ik heb het ondertussen aan de praat gekregen via nuSOAP het grootste probleem zat bij de documentatie van het RDC ( oude informatie gehad ) .

Maar de volgende keer gewoon zonder nuSOAP
Pagina: 1