Încărcarea unui WSDL la distanță poate avea loc în constructorul SoapClient. Furnizați proxy-ul înainte de acea primă preluare:

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

Folosiți WSDL-ul real, gazda/portul proxy-ului și sursa de acreditări dorită. Câmpul gazdă este o adresă, iar portul este separat.

Când eșueazăCererea sau operațiunea de inspectat
Construirea clientuluiPreluarea WSDL sau procesarea documentului.
Procesarea documentului/schemei importateURL-ul suplimentar real de preluare.
Un apel de metodă SOAPPunctul final al serviciului declarat în WSDL, posibil pe altă gazdă.

Un proces care folosește WSDL în cache poate sări peste cererea care eșuează pe altă mașină. Păstrați configurația cache-ului și URL-ul care a eșuat efectiv împreună cu comparația, în loc să schimbați proxy-ul doar pe baza unei construiri reușite.

proxy_login/proxy_password autentifică intermediarul. login/password de destinație și autentificarea serviciului la nivel SOAP deservesc alte straturi. Folosiți opțiunile dedicate în loc să puneți antete asemănătoare conturilor în User-Agent; antetele de aplicație necesare aparțin unei interfețe de antete acceptate.

Înregistrați operațiunea, ținta și partea care emite o provocare cu secretele eliminate. connection_timeout limitează stabilirea conexiunii, nu durata totală a unei operațiuni SOAP lungi.

Articole similare