0

私はこの URL DespegarAPIを持っています。ご覧のとおり、内容は問題ありません。JSON 応答です。

自分のファイルからそのコンテンツが必要で、curl o file_content を使用しますが、応答はこのファイルです

私は私のファイルにこれを持っています

$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;

返信ありがとうございます。

4

1 に答える 1

1

これは、コンテンツが gzip されているためです。簡単な例を次に示します。

<?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();
}
于 2013-10-24T12:15:09.807 に答える