Alguien sabe que rechingados sucede con este código?
ini_set('soap.wsdl_cache_enabled', 0);
$client = new SoapClient('http://www.test/test?wsdl', array(
	'soap_version'	=> SOAP_1_2,
	'cache_wsdl'	=> WSDL_CACHE_NONE,
	//'exceptions'	=> 0
));
$result = $client->ValidaRut(array(
	'rut'		=> 10000000,
	'dv'		=> '3',
	'cup'		=> '',
	'ipserver'	=> '',
	'ipcliente'	=> ''
));Esto me daba cuando le ponía SOAP_1_1:
CitarFatal error: Uncaught SoapFault exception: [HTTP] Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'. in /home/test.php:1 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://www...', 'http://www...', 1, 0) #1 /home/test.php(1): SoapClient->__call('test', Array) #2 /home/test.php(1): SoapClient->ValidaRut(Array) #3 /home/test.php on line 67
Pero al cambiar a la 1_2 me sale igual un error:
CitarFatal error: Uncaught SoapFault exception: [HTTP] Error Fetching http headers in ...
Cambié las rutas pero el código es ese. Que podrá ser? Instalé SOAP con easyapache desde WHM, luego recompilé php con --soap-enabled y la clase me funciona pero hay algo que al parecer no anda.
Por lo que averigué el primer errror era causado porque el rotocolo 1.1 enviaba el contenido via text/xml pero desde la 2.2 es application/soap+xml, pero bueno, cambié la version del protocolo a 1.2 pero ahora me sale un error en el header :-/ que podré hacer?
Gracias :)
PD: Acá les dejo un DUMP para mayor info:
print_r($client->__getFunctions());
Array
(
    [1] => ValidaRutResponse ValidaRut(ValidaRut $parameters)
)
print_r($client->__getTypes());
[0] => struct ValidaRut {
 double rut;
 string dv;
 string cup;
 string ipserver;
 string ipcliente;
}
    [1] => struct ValidaRutResponse {
 boolean ValidaRutResult;
}
    [4] => int char
    [5] => duration duration
    [6] => string guid
)
			 
			
			
				Encontré el problema, le hize print_r($client) y pude ver la última petición por parte de la librería hacia el servidor y al intentar hacerlo desde la consola con netcat me di cuenta que era el servidor el que no enviaba correctamente las cabeceras.
Saludos.