SOAP Server - Headers

Répondre
Superleseb
le 13/07/2012 à 11:29
Superleseb
Bonjour, j'ai un problème avec le SOAP en PHP.
Je n'arrive pas à récupérer les "headers" envoyés par mon client SOAP, DEPUIS ma page "serveur.php" pour pouvoir les traiter et les renvoyer au client.

PROBLEME à la ligne 35 de "serveur.php".

_ J'ai ma page "client.php" qui utilise la fonction SoapClient()
<?php
class fournisseursDispo {
private $id;
private $libelle;

function __construct($id, $lib) {
$this->id = $id;
$this->libelle = $lib;
}
}

class Search {
private $client, $header = array();

function __construct(){
$options = array(
"trace" => true,
"exceptions" => 0,
"encoding" => "utf-8",
"compression" => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | 9,
);
$this->client = new SoapClient("fichier.wsdl", $options);

$head["RelatesTo"] = "id:123456789";
$head["CallbackTo"] = "http://url.com/here.php";
foreach($head as $k => $v){
$this->header[] = new SoapHeader('http://test/middle', $k, $v, false);
}
// $this->client->__setSoapHeaders($this->header);

$dispo = new fournisseursDispo();
$this->client->__soapCall("fournisseursDispo", array($dispo), null, $this->header, $this->header);
}

$s = new Search(); // RECHERCHE VERS LE SERVEUR
var_dump($s);
?>



_ Ma page "serveur.php" qui est a
<?php
// Désactivation du cache WSDL
ini_set("soap.wsdl_cache_enabled", "0");

// Variables
$urlSoap = "./fichier.wsdl";
$options = array("soap_version" => SOAP_1_2);

// PARAMETRES POUR LA CLASSE
$param = "TITI";

// Catch l'erreur si l'instanciation la classe SoapServer échoue, on retourne l'erreur
$soapServer = new SoapServer($urlSoap, $options);
$soapServer->setClass('MySearch', $param);
$soapServer->setPersistence(SOAP_PERSISTENCE_SESSION);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$soapServer->handle();
}

class MySearch
{
private $header;

// Constructeur
function __construct($param) {
$this->header = $param;
}

// Renvoi un résultat
function fournisseursDispo($search)
{
global $soapServer;

// RECUPERATION des HEADERS DU CLIENT ICI....
$head = array(); // <------ ... (?) ... file_get_contents("php://input") --> Marche pas !
foreach($head as $k => $v) {
$soapServer->addSoapHeader(new SoapHeader('http://test/middle', $k, $v));
}

// ...

return $val;
}

// ...
}
?>


Merci par avance.
Si t&#039;es fier d&#039;&ecirc;tre un Nazebroke, tape dans tes mains !!
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours