|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-09-04 08:34 UTC] tony2001@php.net
[2006-09-04 23:52 UTC] chris at reeltwo dot com
[2006-09-05 12:43 UTC] dmitry@php.net
[2006-09-06 20:54 UTC] chris at reeltwo dot com
[2006-09-08 20:26 UTC] tony2001@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 18:00:01 2025 UTC |
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