Il caricamento di un WSDL remoto può avvenire nel costruttore di SoapClient. Fornisci il proxy prima di quel primo recupero:

$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,
]);

Usa il WSDL reale, host/porta del proxy e l'origine delle credenziali prevista. Il campo host è un indirizzo, con la porta separata.

Quando fallisceRichiesta o operazione da esaminare
Costruzione del clientRecupero del WSDL o elaborazione del documento.
Elaborazione di documento/schema importatoL'URL aggiuntivo di recupero effettivo.
Una chiamata a un metodo SOAPL'endpoint del servizio dichiarato nel WSDL, forse su un altro host.

Un processo che usa WSDL in cache può saltare la richiesta che fallisce su un'altra macchina. Conserva la configurazione della cache e l'URL effettivamente fallito insieme al confronto, invece di cambiare il proxy solo in base alla riuscita della costruzione.

proxy_login/proxy_password autenticano l'intermediario. login/password di destinazione e l'autenticazione del servizio a livello SOAP servono altri livelli. Usa le opzioni dedicate invece di mettere header simili ad account nello User-Agent; gli header applicativi richiesti appartengono a un'interfaccia header supportata.

Registra l'operazione, il target e la parte che emette una richiesta di autenticazione con i segreti rimossi. connection_timeout limita la creazione della connessione, non la durata complessiva di una lunga operazione SOAP.

Articoli correlati