Paramètres de proxy de SoapClient PHP pour WSDL et appels de service
Configurez les options de proxy de SoapClient PHP pour le chargement de WSDL et les appels de service sans injecter d'identifiants dans l'User-Agent.
Le chargement d'un WSDL distant peut se produire dans le constructeur de SoapClient. Fournissez le proxy avant cette première récupération :
$client = new SoapClient('https://service.example.com/api?wsdl', [
'proxy_host' => '203.0.113.10',
'proxy_port' => 8080,
'proxy_login' => getenv('PROXY_USER'),
'proxy_password' => getenv('PROXY_PASSWORD'),
'connection_timeout' => 5,
'exceptions' => true,
]);Utilisez le WSDL réel, l'hôte/port du proxy et la source d'identifiants prévue. Le champ hôte est une adresse, son port est séparé.
| En cas d'échec | Requête ou opération à examiner |
|---|---|
| Construction du client | Récupération du WSDL ou traitement du document. |
| Traitement d'un document/schéma importé | L'URL de récupération supplémentaire réelle. |
| Un appel de méthode SOAP | Le point de terminaison du service déclaré dans le WSDL, éventuellement sur un autre hôte. |
Un processus utilisant un WSDL mis en cache peut ignorer la requête qui échoue sur une autre machine. Conservez la configuration du cache et l'URL réellement en échec avec la comparaison, plutôt que de changer le proxy uniquement sur la base d'une construction réussie.
proxy_login/proxy_password authentifient l'intermédiaire. Les login/password de destination et l'authentification du service au niveau SOAP servent d'autres couches. Utilisez les options dédiées plutôt que de placer des en-têtes de type compte dans l'User-Agent ; les en-têtes applicatifs requis relèvent d'une interface d'en-têtes prise en charge.
Consignez l'opération, la cible et la partie qui émet un défi en retirant les secrets. connection_timeout borne l'établissement de la connexion, pas la durée complète d'une longue opération SOAP.