Si estas recibiendo los siguientes errores al tratar de consumir un Servicio Web:
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://
Fatal error: Uncaught SoapFault exception: [ns0:Server] Debe proveer USUARIO (Username) y PASSWORD (Password) en el header HTTP
Lo Solucionas de la siguiente manera:
el primer error se produce porque no se esta especificando el proxy en la cadena de conexion, lo solucionas de la siguiente manera:
$url = 'https://ocppws-cert.extra.cca.org.ve/AV/BU?WSDL';
$head = array('proxy_host'=> "proxyvz.xx.xx.xx",'proxy_port'=> 1234);
$client = new SoapClient($url,$head);
Ahora el segundo error te indica que debes validarte mediante un usuario y contraseña el cual debes pasar por el encabezado, los solucionas asi:
$aHTTP['http']['header'] = "User-Agent: PHP-SOAP/5.5.11\r\n";
$aHTTP['http']['header'] .= "username: PEPE\r\n"."password: PEPE2020\r\n";
$context = stream_context_create($aHTTP);
$client=new SoapClient(
"https://ocppws-cert.extra.cca.org.ve/AV/BU?WSDL",
array(
'trace' => 1,
'proxy_host' => "proxyvz.xx.xx.xx",
'proxy_port' => "1234",
"stream_context" => $context
)
);
$result = $client->jornada();
// OJO esta parte es para extraer el contenido del vector que retorna la llamada al metodo jornada()
foreach($result as $row)
{
$columna = explode("~",$row); //separar los datos en posiciones de arreglo
$Movimiento=$columna[0];
}
Bueno espero les sea de utilidad. Saludos.
David Rafael Blanco Leon. Caracas Venezuela.