0

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!

1
  • The is the definition for the URL api.despegar.com Commented Oct 24, 2013 at 12:04

1 Answer 1

1

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\n", $city->countryId);
    }
}catch(Exception $exception) {
    echo $exception->getMessage();
}
Sign up to request clarification or add additional context in comments.

3 Comments

I don't know what the content of your script is, but the example I posted definitely works. Increase error reporting on your host and start debugging.
I put some outputs and is working now. At least I see some results now. The problem now is the daily limit of request of the api.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.