magento - the - soap error parsing wsdl unknown required wsdl extension
Error WSDL: SOAP-ERROR: AnĂ¡lisis WSDL: No se pudo cargar desde (4)
Algunos pasos para comprobar
Tener un ping a Myhostname. Daría la ip. Usa ip en su lugar y mira
Compruebe si los servicios están habilitados S0AP, php_openssl, openssl, curl
Espero que lo consigas :)
Mi problema es muy común. Leí casi todos los temas en stackoverflow sobre este problema, pero aún así no puedo hacer nada. Mi código es:
ini_set("soap.wsdl_cache", "0");
ini_set("soap.wsdl_cache_enabled", "0");
$proxy = new SoapClient(''http://Myhostname/api/soap?wsdl'');
Tuve este error:
Error WSDL: SOAP-ERROR: Parsing WSDL: Couldn''t load from
''http://Myhostname/api/soap?wsdl'' : failed to load external entity
"http://Myhostname/api/soap?wsdl"
En el navegador la URL
http://Myhostname/api/soap?wsdl
funciona muy bien (devuelve una respuesta xml)
Intento este código para ver si PHP puede llegar a esta URL:
if (file_get_contents(''http://Myhostname/api/soap?wsdl'') === false) {
echo "ERROR: file_get_contents <br/>";
}
Me muestra mi error "ERROR: file_get_contents", por lo que no funciona. En los foros vi que para resolver este problema debo agregar el nombre de host al archivo "hosts" del sistema operativo. Así que lo hice. En mi archivo hosts agregué esta línea 127.0.0.1 Myhostname
Pero todavía no funciona. Luego cambié la URL en mi código para
http://localhost/Myhostname/api/soap?wsdl
Pero tampoco funciona.
Probé otra solución que encontré en internet. Para algunas personas funcionó. En mi URL he cambiado ''?'' personaje a ''.''. Así que mi nueva URL se convirtió
http://localhost/Myhostname/api/soap.wsdl
Pero tampoco funciona.
Vi oficial de SOAP doc ! Y trató de crear el objeto SoapClient de manera diferente (con opciones como ''proxy_host'' y ''proxy_port''). Pero esto no me ayudó.
Es mi segundo día trato de resolver este problema, pero no puedo. Estoy haciendo mi pasantía, no tengo mucha experiencia, así que tal vez no probé las soluciones que encontré correctamente. Tal vez alguien pueda ayudar. Yo estaria muy contento.
Tengo el problema similar, lo resuelvo sin comentarios -MultiViews del archivo .htaccess, y luego de la configuración de Apache del sitio web local.
Mi configuración de trabajo de Apache es:
<Directory /var/www/>
Options Indexes FollowSymLinks -MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Puedes probar también la url:
http://localhost/Myhostname/api.php?type=soap&wsdl
Si usas edición comunitaria.
en lugar de $ proxy = new SoapClient ( ''http://Myhostname/api/soap?wsdl''
);
intente $ proxy = nuevo SoapClient (WSDLFILENAME);
donde WSDLFILENAME es el nombre del sistema operativo del archivo WSDL. Esto tiene la ventaja adicional de hacer que un cliente-servidor reduzca menos el viaje.
SOAP Web Services
en mi host local y funcionaba bien. La razón por la que Magento
no pudo dar una respuesta a la solicitud fue porque no pudo verificar los SSL Certificates
habilitados en el sitio.
La forma en que lo resolví fue permitir la SSL verification
:
$opts = [
''http'' =>
[
''header'' => "Authorization: Bearer ".$token
],
''ssl'' => [
''allow_self_signed'' => true ,
''verify_peer'' => false,
''verify_peer_name'' => false]
];
$context = stream_context_create($opts);
Espero que ayude. ;)