Edit report at http://bugs.php.net/bug.php?id=43507&edit=1
ID: 43507
Comment by: wpoi at ya dot ru
Reported by: ianils at gmail dot com
Summary: SOAPFault HTTP Status 500 - would like to be able to
set the HTTP Status
Status: Closed
Type: Bug
Package: SOAP related
PHP Version: 5.2.5
Assigned To: dmitry
Block user comment: N
Private report: N
New Comment:
Problem do still exist. While PHP sends 200 HTTP code for SOAP Fault
with User-agent = Shockwave Flash, Flash objects integrated into HTML
page sends it's requests with User-agent = browser and NOT Shockwave
Flash.
Thus Flash object still receive 500 Error.
Previous Comments:
------------------------------------------------------------------------
[2008-02-15 06:53:21] [email protected]
It makes no sense to setup status code manually (for all clients),
because HTTP 500 is legal response.
I've committed the fix based on User-Agent header.
------------------------------------------------------------------------
[2008-02-15 05:49:55] ianils at gmail dot com
The user agent is the same for Flex and AIR ie. "Shockwave Flash"
However it is possible to change the userAgent from with in side
the Flash/Flex/Air app .
Is it possible to set the status via the SOAP call itself ?
eg:
SoapServer->setFaultStatusCode($status=500)
perhaps ??
------------------------------------------------------------------------
[2008-02-14 16:30:34] [email protected]
I am able to disable HTTP 500 status code for some user agents, but I
don't know the exactly user agent strings.
Flash - "Shockwave Flash"
Flex - ?
AIR - ?
------------------------------------------------------------------------
[2007-12-05 19:05:11] ianils at gmail dot com
Description:
------------
When using php web services with Adobe Flex/Flash/AIR , error handling
is a major pain.
If I have a simple web service that throws a SOAPFault , the http status
code that is returned with the message is 500 . This is a problem
because the Flash Player ignores any message that has a status code >
200. ( Which is understandable , status code 500 could mean the server
is really in trouble ) .
I would very much like to be able to set the 'status code' that is
returned when a SOAP Fault is thrown .
The flash player is clever enough to recognize a SOAP Error and
therefore able to run the correct code from with the flash app , however
this is only possible when it gets a HTTP Status code that is not >
200.
Reproduce code:
---------------
This is a feature request to be able to set the HTTP Error code that is
returned from a SOAP Fault .
Its not necessarily a bug with a PHP , other languages offer similar
workarounds.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=43507&edit=1