Avatar billede sylvesternielsen Nybegynder
29. december 2007 - 19:31 Der er 8 kommentarer og
1 løsning

Soap EPR, hvordan?

Jeg har en axis2 webservice som jeg gerne ville kommunikerer med fra PHP.

Det viser sig dog at der er noget EPR eller REST epr mulighed.
Så vidt jeg kan se betyder det at jeg skal bruge noget WS-adressing, men hvordan gør jeg det i PHP?

Det ser desværre ikke ud til at være supporteret som std.
Avatar billede sylvesternielsen Nybegynder
29. december 2007 - 20:29 #1
Det skal siges at jeg godt kan lave kald til servicen som std.

Jeg skal kalde en login tjeneste, men det lader til at jeg ved andet kald ikke er logget ind længere. Jeg går ud fra at det er REST delen som ikke kører her, eller har jeg misforstået det?
Avatar billede arne_v Ekspert
29. december 2007 - 20:36 #2
Jeg kender intet til den service, men normalt er problemet med login og web services
at client ikke bevarer sessionen.

Du sender noget SOAP over HTTP til login metoden.

Servicen returnerer en status *og* ude på HTTP niveau sætter den en session cookie.

Når du kalder næste metode skal du have den cookie med i din HTTP request
for at servicen kan forbinde den request med den session der blev startet
med login request.
Avatar billede sylvesternielsen Nybegynder
29. december 2007 - 21:35 #3
Jeg tror ikke det er et session problem da det sker i den samme request.

Min login retunerer true og isConnected returnerer false.
Hvis session/REST eller vad der nu styrer dette virkede burde isConnected returnerer true.

<?php
$client = new SoapClient("file.wsdl");
$client->login(array("login" => "admin", "password" => "admin"));
$client->isConnected();
?>
Avatar billede arne_v Ekspert
29. december 2007 - 21:54 #4
login og isConnected er vel 2 requests ??
Avatar billede sylvesternielsen Nybegynder
29. december 2007 - 21:59 #5
Ja det er det..
Avatar billede sylvesternielsen Nybegynder
29. december 2007 - 22:13 #6
Jeg har også pæne responses.. Kan se at PHP bruger ws-addressing som den skal blandt andet.

REQUEST:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body/></SOAP-ENV:Envelope>

REQUEST header:
POST /axis2/services/Residential HTTP/1.1
Host: webadmin.res.debitel-ip.dk:8078
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.1.6
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:isConnected"
Content-Length: 154


RESPONSE:
<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header /><soapenv:Body><ns:isConnectedResponse xmlns:ns="http://ws.centile.com/xsd"><ns:return>false</ns:return></ns:isConnectedResponse></soapenv:Body></soapenv:Envelope>

RESPONSE header:
HTTP/1.1 200 OK
Date: Sat, 29 Dec 2007 21:08:32 GMT
Content-Type: text/xml
Transfer-Encoding: chunked
Avatar billede arne_v Ekspert
29. december 2007 - 22:23 #7
Hvordan ser response og response header fra login ud ?
Avatar billede sylvesternielsen Nybegynder
29. december 2007 - 22:26 #8
REQUEST:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ws.centile.com/xsd"><SOAP-ENV:Body><ns1:login><ns1:login>admin</ns1:login><ns1:password>admin</ns1:password></ns1:login></SOAP-ENV:Body></SOAP-ENV:Envelope>

REQUEST header:
POST /axis2/services/Residential HTTP/1.1
Host: webadmin.res.debitel-ip.dk:8078
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.1.6
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:login"
Content-Length: 293


RESPONSE:
<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header /><soapenv:Body><ns:loginResponse xmlns:ns="http://ws.centile.com/xsd"><ns:return>true</ns:return></ns:loginResponse></soapenv:Body></soapenv:Envelope>

RESPONSE header:
HTTP/1.1 200 OK
Date: Sat, 29 Dec 2007 21:26:12 GMT
Content-Type: text/xml
Transfer-Encoding: chunked
Avatar billede sylvesternielsen Nybegynder
20. februar 2011 - 21:10 #9
Jeg fik aldrig løst denne.. Lukker..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester