Hoi,
Ik ben al een tijdje bezig met het aanspreken van een soap server. Het inloggen lukt, alleen lukt het uitloggen niet.
Dit is de request en response van de login:
Ik log in via volgend script:
Ik krijg dan zoals het hoort de sessionid terug die ik dan moet gaan gebruiken met volgende scripts
Maar het lukt me niet uit te loggen.
Dit is de request en response van de logout:
Mijn PHP code is de volgende:
Hiermee zet ik dus de sessionid in de headers, maar ik moet hem ook duidelijk maken dat ik wil uitloggen. Dit moet via de body, alleen weet ik niet hoe.
Is er iemand die me hiermee op weg kan helpen?
Alvast bedankt!
Ik ben al een tijdje bezig met het aanspreken van een soap server. Het inloggen lukt, alleen lukt het uitloggen niet.
Dit is de request en response van de login:
code:
1
2
3
4
5
6
7
8
9
| <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <Login xmlns="http://www.server.com/"> <userName>string</userName> <password>string</password> </Login> </soap12:Body> </soap12:Envelope> |
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Header> <SessionIDHeader xmlns="http://www.server.com/"> <SessionID>string</SessionID> </SessionIDHeader> </soap12:Header> <soap12:Body> <LoginResponse xmlns="http://www.server.com/"> <LoginResult> <Message>string</Message> <Status>None or Success or Failed or SuccessWithErrors</Status> </LoginResult> </LoginResponse> </soap12:Body> </soap12:Envelope> |
Ik log in via volgend script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| <?php class Login { public $userName; public $password; } $login = new Login(); $login->userName = 'username'; $login->password = 'password'; $client = new SoapClient("http://www.server.com/file.asmx?WSDL", array('trace' => true, 'soap_version' => SOAP_1_2, 'location" => "http://www.server.com/')); $result = $client->Login($login); echo $client->__getLastResponse(); ?> |
Ik krijg dan zoals het hoort de sessionid terug die ik dan moet gaan gebruiken met volgende scripts
Maar het lukt me niet uit te loggen.
Dit is de request en response van de logout:
code:
1
2
3
4
5
6
7
8
9
10
11
| <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Header> <SessionIDHeader xmlns="http://www.server.com/"> <SessionID>string</SessionID> </SessionIDHeader> </soap12:Header> <soap12:Body> <Logout xmlns="http://www.server.com/" /> </soap12:Body> </soap12:Envelope> |
code:
1
2
3
4
5
6
| <?xml version="1.0" encoding="utf-8"?> <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> <soap12:Body> <LogoutResponse xmlns="http://www.server.com/" /> </soap12:Body> </soap12:Envelope> |
Mijn PHP code is de volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| <?php $ns = 'http://www.server.com/file.asmx?WSdL'; $SessionID = 'sessionid'; $headerbody = array('SessionID' => $SessionID); $header = new SOAPHeader($ns, 'SessionIDHeader', $headerbody); $soap_client->__setSoapHeaders($header); ?> |
Hiermee zet ik dus de sessionid in de headers, maar ik moet hem ook duidelijk maken dat ik wil uitloggen. Dit moet via de body, alleen weet ik niet hoe.
Is er iemand die me hiermee op weg kan helpen?
Alvast bedankt!