ID: 38703 Updated by: [EMAIL PROTECTED] Reported By: chris at reeltwo dot com -Status: Open +Status: Assigned Bug Type: SOAP related Operating System: Windows XP PHP Version: 5.1.6 Assigned To: dmitry New Comment:
Dmitry, so what's the status of this report? "Won't fix"? Previous Comments: ------------------------------------------------------------------------ [2006-09-06 20:54:45] chris at reeltwo dot com Thanks, I've used the set_error_handler() workaround. ------------------------------------------------------------------------ [2006-09-05 12:43:23] [EMAIL PROTECTED] ext/soap reuses libxml and php streams API code to load WSDL files. I don't like rewrite streams code in ext/soap, but this code is not able throw exceptopns. As a workarounf I suggest tricks with set_error_handler(). ------------------------------------------------------------------------ [2006-09-04 23:52:22] chris at reeltwo dot com The problem still occurs using the latest snapshot. ------------------------------------------------------------------------ [2006-09-04 08:34:21] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5.2-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.2-win32-latest.zip ------------------------------------------------------------------------ [2006-09-03 22:18:53] chris at reeltwo dot com Description: ------------ When an incorrect user name or password is passed to a SoapClient in WSDL mode, the resulting SoapFault exception which is thrown contains the generic faultstring of "SOAP-ERROR: Parsing WSDL: Couldn't load from..." and faultcode of "WSDL". A warning is given with "HTTP request failed! HTTP/1.1 401 Unauthorized", however this is not catchable. The more desirable result in the case would be the same as non-WSDL mode where the faultstring is "Unauthorized" and faultcode is "HTTP". Reproduced on Windows XP with Apache/2.0.55 PHP 5.1.6, Apache/2.2.3 PHP 5.2.0 (20060830) and Apache/2.2.3 PHP 6.0.0 (20060830). Reproduce code: --------------- /* WSDL is behind basic authentication */ try { $soap = new SoapClient('http://localhost/some.wsdl', array('login' => 'badlogin', 'password' => 'badpass')); } catch (SoapFault $e) { echo '<p>Fault String: '.$e->faultstring.'<p>'; echo '<p>Fault Code: '.$e->faultcode.'<p>'; } Expected result: ---------------- Fault String: Unauthorized Fault Code: HTTP Actual result: -------------- Warning: SoapClient::__construct({snip:wsdl}) [function.SoapClient---construct]: failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in {snip:path} Warning: SoapClient::__construct() [function.SoapClient---construct]: I/O warning : failed to load external entity "{snip:wsdl}" in {snip:path} Fault String: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost/some.wsdl' Fault Code: WSDL ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=38703&edit=1