Reputation: 868
I have the following code in order to call a Web Service from php, using curl:
<?php
echo "Init<br />";
$url = 'http://server-ip/applications/time2gate.aspx?x=1182&y=365&map=1002&gate=B3&mode=time2gate&session=5fdf288d-01b0-414a-ba2a-58d3f624e453';
$ch = curl_init($url);
echo "1";
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resp = curl_exec($ch);
$status_code = array();
preg_match('/\d\d\d/', $resp, $status_code);
switch($status_code[0]) {
case 200:
echo "Success<br />";
break;
case 503:
die('Your call to Web Service failed and returned an HTTP 503.');
break;
case 403:
die('Your call to Web Service failed and returned an HTTP status of 403.');
break;
case 400:
die('Your call to Web Services failed and returned an HTTP status of 400.');
break;
default:
die('Your call to Web Services returned an unexpected HTTP status of:' . $status_code[0]);
}
if(curl_errno($ch))
{
echo 'error' . curl_error($ch);
}
curl_close($ch);
?>
The problem is that I receive HTTP response codes like 163, 815, 329... Why is this happening? What do these codes mean? I checked Apache's error log and I have not seen any errors on my code. Also, I tested a call to the url provided and it works with Mozilla's Poster Add-on.
Any ideas? I am working with php 5, on Ubuntu 12.
Thank you, Nick
Upvotes: 0
Views: 1292
Reputation: 30565
When I need to make API calls I use a simple library available on GitHub: https://github.com/rmccue/Requests
I've put an example below which uses this library and it will print out the full response from the API.
<?php
require_once('library/Requests.php');
$url = 'http://server-ip/applications/time2gate.aspx?x=1182&y=365&map=1002&gate=B3&mode=time2gate&session=5fdf288d-01b0-414a-ba2a-58d3f624e453';
// Next, make sure Requests can load internal classes
Requests::register_autoloader();
// Now let's make a request!
$request = Requests::get($url, array('Accept' => 'application/json'));
echo '<pre>';
print_r($request);
echo '</pre>';
Upvotes: 1