homepage Welcome to WebmasterWorld Guest from 54.167.185.110
register, free tools, login, search, pro membership, help, library, announcements, recent posts, open posts,
Become a Pro Member
Home / Forums Index / Code, Content, and Presentation / PHP Server Side Scripting
Forum Library, Charter, Moderators: coopster & jatar k

PHP Server Side Scripting Forum

    
Return HTTP Status 200 OK rather than 500.
chadodes




msg:4360485
 1:11 pm on Sep 9, 2011 (gmt 0)

Hello Everyone.

I have a device that refuses to communicate and parse HTML unless it gets a 200 OK HTTP Status code.

unfortunately for me.. this device hits a page I made that also makes a SOAP call to a WSDL file.

If the SOAP calls gets a SOAP Fault, not necessarily an error.. in my case it's a "user already exists" error, that I can catch, it turn the entire page into a HTTP 500 Internal server Error.

I have tried all of these, and for some reason the page still loads a 500 status when I use Firefox Web Console to watch whats going on.

//http_response_code(200);
header('HTTP/1.1 200 OK');
header("Status: 200");


Perhaps I'm not wrapping the error properly or I'm not catching and cleaning whats going on..

here is an example of how I'm trying to handle everything.

//Open SOAP WSDL Connection
$client = @new SoapClient('https://site.com/ClockService.svc?wsdl', array('cache_wsdl' => 0));
var_dump($client->__getFunctions());
// Request a authentication ticket GUID
$tixparam = array('userName'=>'user', 'password'=>'Password');
$getauth = $client->Authenticate($tixparam);
$authkey = $getauth->AuthenticateResult;
//Give the WSDL the received ticket and prepare a request.
$param = array('ticket'=>$authkey);
// Do a Human Readable dump of the Object Array,
echo "<pre>".print_r($param, true)."</pre><br>";
//Deal with Faults
catch (SoapFault $doapunch) {
header('HTTP/1.1 200 OK');
header("Status: 200 OK");
// Do a Human Readable dump of the Object Array,
echo "<pre>".print_r($param, true)."</pre><br>";
trigger_error("SOAP Fault: (faultItem: {$doapunch->detail->ValidationFault->Messages->KeyValueOfstringstring->Key}, faultstring: {$doapunch->detail->ValidationFault->Messages->KeyValueOfstringstring->Value})", E_USER_ERROR);
}


I have also tried putting the header info at the top or at the verry bottom of the page..
What am I doing wrong?
Should I go about this via a different method like mod_rewrite in the .htaccess?

Thank you all kindly for your input.
-Chad

 

jbroder




msg:4361518
 6:41 pm on Sep 12, 2011 (gmt 0)

I didn't see anybody respond (it's a tough one), so I offer this in case it helps:

Have you tried isolating the header calls, with just a page that sets the header. Can you make the header do whatever you want? Make it a 500 when it should be 200, make it a 404 when the page is found?

Hope that helps...

Global Options:
 top home search open messages active posts  
 

Home / Forums Index / Code, Content, and Presentation / PHP Server Side Scripting
rss feed

All trademarks and copyrights held by respective owners. Member comments are owned by the poster.
Home ¦ Free Tools ¦ Terms of Service ¦ Privacy Policy ¦ Report Problem ¦ About ¦ Library ¦ Newsletter
WebmasterWorld is a Developer Shed Community owned by Jim Boykin.
© Webmaster World 1996-2014 all rights reserved