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?