Bonjour tous le monde,
j'ai une question : est-ce que c'est possible d'appeler un code CGI depuis une page PHP avec les web services ?
merci
Bonjour tous le monde,
j'ai une question : est-ce que c'est possible d'appeler un code CGI depuis une page PHP avec les web services ?
merci
si ton cgi propose un web service oui
en faisant du SOAP, du REST n'importe quel type web service
peux-tu me donner un exemple complet d'un serveur CGI et un client PHP utilisant les web services ?
merci bcp.
Voici un exemple d'un code cgi :
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 #!/usr/bin/perl #print ("Content-type: text/html\n\n"); use SOAP::Transport::HTTP; SOAP::Transport::HTTP::CGI -> dispatch_to('Demo') -> handle; package Demo; sub hi { return "hello, world"; } sub GoodBye { my ($name) = @_; return 'Goodbye, ' . $name . "\n"; } 1;
si c'est du SOAP utilise la classe SOAP du PHP
je l'ai essayé mais ça bloque : pas de réponse ! (avec 2 maniérés )
Pouvez-vous l'essayer et me donner le code ?
on ne connais pas ton API, montre ton code
Voici le code php client :
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 <HTML> <BODY> <?php require_once('nusoap/lib/nusoap.php'); $client = new nusoap_client('http://localhost/cgi-bin/hibye.cgi'); $param = array('$name'=>'aaaa'); if ($client->fault) { echo '<p><b>Fault: '; echo($result); echo '</b></p>'; } else { // Check for errors $err = $client->getError(); if ($err) { // Display the error echo '<p><b>Error: ' . $err . '</b></p>'; } else { // Display the result echo($client->call('GoodBye', $param )); } } ?> </BODY> </HTML>
utilise direct l'extension SOAP du PHP
ça bloque !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php $wsdl = 'http://localhost/cgi-bin/hibye.cgi'; $options = array('cache_wsdl' => WSDL_CACHE_NONE); // pour effacer le cache try { $soapclt = new SoapClient($wsdl, $options); $res = $soapclt->GoodBye("aaaa"); echo $res; } catch (SoapFault $fault) { trigger_error("ERREUR WS-CLIENT A.PHP (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR); } ?>
le code bloque tjs à l'instruction
Est ce que le code marche chez-toi?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $soapclt = new SoapClient($wsdl, $options);
j'en sais rien, j'ai pas accès a ton CGI ...
tu peux le copier en localhost ! mais as-tu une exemple complet (serveur cgi, client php) ?
ah c'est que ça
ton fichier c'est pas le wdsl, c'est l'adresse de ton serveur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $location= 'http://localhost/cgi-bin/hibye.cgi'; $options = array( 'location' => $location, 'uri' => '' ); $soapclt = new SoapClient(null, $options);
ça se débloque unpeu;
$soapclt = new SoapClient(null, $options); marche très bien mais lorsque je demande l'affichage des fonctions avec $soapclt->__getFunctions() j'ai NULL
une idée ?
je peux pas devenier les choses à toi de regarder les erreurs en attrapant les exceptions
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager