Reputation: 2606
I am working on a web service and I am unable to connect always get this error message:
SOAP-ERROR: Parsing Schema: can't import schema from domain.com/WebService.svc?xsd=xsd0
I did went to all of the SO questions I did not find a solution.
Linux, php7.1
bz2, calendar, Core, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd,
gettext, hash, iconv, intl, json, ldap, libxml, mbstring, mysqli, mysqlnd,
openssl, pcntl, pcre, PDO, pdo_dblib, pdo_mysql, pdo_sqlite, Phar, posix,
readline, Reflection, session, shmop, SimpleXML, soap, sockets, SPL,
sqlite3, standard, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml,
xmlreader, xmlwriter, xsl, zip, zlib
$wsdlFile = **fullpathtowsdlfile**;
$context = stream_context_create([
'ssl' => [
// set some SSL/TLS specific options
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
],
'http'=>array(
'user_agent'=>'SoapClient'
)
]);
$options = array(
'trace'=>1,
'location'=>self::$wsdl,
'exception'=>1,
'cache_wsdl'=>WSDL_CACHE_NONE,
//'stream_context'=>$context, // disable but leaved for reference.
'local_cert'=> **fullpath**,
'soap_version'=> SOAP_1_1
);
$client = new \SoapClient($wsdlFile, $options);
Also tried the Url instead of the Wsdl file and I get the same error. I can connect to the url via telnet domain 80 , telnet domain 413 and with my browser.
What I am missing? Any help will be appreciated.
Upvotes: 0
Views: 1181
Reputation: 2606
The issue was a self signed certificate, updated my code to this and now the error is gone.
$context = stream_context_create([
'ssl' => [
// set some SSL/TLS specific options
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
$options = array(
'trace'=>1,
'exception'=>0,
'stream_context'=>$context,
);
$client = new \SoapClient($wsdlFile, $options);
Upvotes: 1