php magento soap proxy

Ejecutando PHP SoapServer detrás de un proxy



magento (1)

Intente stream_context_set_default como en file_get_contents: file_get_contents detrás de un proxy?

<?php // Edit the four values below $PROXY_HOST = "proxy.example.com"; // Proxy server address $PROXY_PORT = "1234"; // Proxy server port $PROXY_USER = "LOGIN"; // Username $PROXY_PASS = "PASSWORD"; // Password // Username and Password are required only if your proxy server needs basic authentication $auth = base64_encode("$PROXY_USER:$PROXY_PASS"); stream_context_set_default( array( ''http'' => array( ''proxy'' => "tcp://$PROXY_HOST:$PROXY_PORT", ''request_fulluri'' => true, ''header'' => "Proxy-Authorization: Basic $auth" // Remove the ''header'' option if proxy authentication is not required ) ) ); //Your SoapServer here

O intenta ejecutar el servidor en modo no WSDL

<?php $server = new SoapServer(null, array(''uri'' => "http://localhost/namespace")); $server->setClass(''myClass''); $data = file_get_contents(''php://input''); $server->handle($data);

Estoy intentando ejecutar un SoapClient de PHP y un SoapServer (para Magento) detrás de un proxy, donde el único tráfico de red permitido es a través del servidor proxy.

Tengo este trabajo con el cliente como tal:

$client = new SoapClient(''https://www.domain.co.uk/api/v2_soap/?wsdl=1'', [ ''soap_version'' => SOAP_1_1, ''connection_timeout'' => 15000, ''proxy_host'' => ''192.168.x.x'', ''proxy_port'' => ''xxxx'', ''stream_context'' => stream_context_create( [ ''ssl'' => [ ''proxy'' => ''tcp://192.168.x.x:xxxx'', ''request_fulluri'' => true, ], ''http'' => [ ''proxy'' => ''tcp://192.168.x.x:xxxx'', ''request_fulluri'' => true, ], ] ), ]);

Esto funciona como se esperaba: todo el tráfico se realiza a través del servidor proxy.

Sin embargo, con la clase SoapServer, no puedo averiguar cómo forzarla para que envíe todo el tráfico saliente a través del SoapServer. Parece estar intentando cargar http://schemas.xmlsoap.org/soap/encoding/ directamente desde la red, no a través del proxy, lo que está causando que "no se pueda importar el esquema de '' http://schemas.xmlsoap.org/soap/encoding/ ''"error a lanzar.

Intenté agregar una entrada de archivo hosts para schemas.xmlsoap.org a 127.0.0.1 y alojar este archivo localmente, pero todavía tengo el mismo problema.

¿Se me escapa algo?