Bonjour.
Je dois coder une fonction qui ferait appel à un Webservices (hyper classic) sur un site dont le site Serveur est accessible par login et mot de passe.
J'utilise un code PHP + Curl pour me loguer et cette partie là fonctionne.
Cette partie là fonctionne parfaitement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 $ch = curl_init(); $url = "http://mon_site_serveur_webservice"; $user = "user"; $password = "mot de passe"; $fields = array( 'input_user'=>$user, 'input_pass'=>$password, 'submit_login'=>'Submit'); $postvars = ''; foreach($fields as $key=>$value) { $postvars .= $key . "=" . $value . "&"; } curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HEADER, 0); curl_setopt($ch,CURLOPT_POST, True); //0 for a get request curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars); curl_setopt($ch,CURLOPT_RETURNTRANSFER, True); curl_setopt($ch,CURLOPT_FOLLOWLOCATION, True); curl_setopt($ch,CURLOPT_COOKIESESSION, true); curl_setopt($ch,CURLOPT_COOKIEJAR,'cookie.txt'); curl_setopt($ch,CURLOPT_COOKIEFILE,'cookies.txt'); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3); curl_setopt($ch,CURLOPT_TIMEOUT, 20); $response = curl_exec($ch); echo "curl response is:" . $response."<br>"; curl_close ($ch);
Avant la fermeture curl, j'insère mot code webservices client.
Et du coup, pas de connexion du webservice car, le contenu de __getLastResponse() m'affiche la page de login.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 try { $clientSOAP = new SoapClient( null, array ( 'uri' => 'http://mon_site/index.php?menu=rx_check_in&action=ws', 'location' => 'http://mon_site/index.php?menu=rx_check_in&action=ws', 'wsdl_cache' => 0, 'trace' => 1, 'exceptions' => 0 )); $ret = $clientSOAP->__call('hello', array()); echo $clientSOAP->__getLastResponse(); echo $ret; echo '<br />'; $ret = $clientSOAP->__call('donne', array('i'=>5)); echo $ret; } catch(SoapFault $f) { echo $f; }
Donc perte de session ou pas la même.
Du coup, je me doute qu'il faille conserver la session ouverte.
J'essaye de glaner des infos là dessus, mais je n'y arrive pas.
Je ne sais pas si les deux codes peuvent utiliser la même session et comment.
Individuellement, sans authentification, le webservice fonctionne.
Je ne vois pas trop.
Si quelqu'un peut m'aider là dessus.
Franck
Partager