I have this url DespegarAPI and as you can see the content is OK. Is a JSON response.
I need that content through my own file and I use curl o file_content but the response I this my file
I have this in my file
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.despegar.com/cities?pagesize=30");
curl_setopt($ch, CURLOPT_HEADER, 0);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Thanks for the response!
It's because the content is gzipped, here's a quick example to get you going.
<?php
function despegar($endpoint, array $params = array()) {
$url = sprintf(
'http://api.despegar.com/%s?%s',
$endpoint,
empty($params) ? null : http_build_query($params)
);
$handle = curl_init($url);
curl_setopt_array($handle, array(
CURLOPT_ENCODING => 'gzip',
CURLOPT_RETURNTRANSFER => true
));
$response = curl_exec($handle);
$code = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if ( ! $response || 200 != $code) {
throw new Exception(
sprintf('(%d) Failed to obtain data from %s.', $code, $url),
$code
);
}
return json_decode($response);
}
try {
$cities = despegar('cities', array('pagesize' => 10));
foreach ($cities->cities as $city) {
printf("%s
", $city->countryId);
}
}catch(Exception $exception) {
echo $exception->getMessage();
}