PHP SoapClient-proxyindstillinger til WSDL og tjenestekald
Konfigurer PHP SoapClient-proxyvalg til WSDL-indlæsning og tjenestekald uden at indsætte loginoplysninger i User-Agent.
Indlæsning af ekstern WSDL kan ske inde i SoapClient-konstruktøren. Angiv proxyen før den første hentning:
$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,
]);Brug den rigtige WSDL, proxyens vært/port og den tilsigtede kilde til loginoplysninger. Værtfeltet er en adresse, og porten er separat.
| Når det fejler | Anmodning eller handling, der skal undersøges |
|---|---|
| Konstruktion af klienten | WSDL-hentning eller dokumentbehandling. |
| Behandling af importeret dokument/skema | Den faktiske ekstra hente-URL. |
| Et SOAP-metodekald | Tjenesteslutpunktet, der er erklæret i WSDL'en, muligvis på en anden vært. |
En arbejdsproces med cachelagret WSDL kan springe den anmodning over, der fejler på en anden maskine. Behold cachekonfigurationen og den faktiske fejlende URL sammen med sammenligningen i stedet for at ændre proxyen alene ud fra en vellykket konstruktion.
proxy_login/proxy_password godkender mellemleddet. Destinationens login/password og servicegodkendelse på SOAP-niveau tjener andre lag. Brug de særlige indstillinger i stedet for at sætte kontolignende headers i User-Agent; påkrævede applikationsheaders hører til i en understøttet header-interface.
Registrer handlingen, målet og den part, der udsteder en udfordring med hemmeligheder fjernet. connection_timeout begrænser forbindelsesoprettelsen, ikke hele varigheden af en lang SOAP-handling.