Использование cURL для получения JSON из API ничего не возвращает - PullRequest
0 голосов
/ 23 декабря 2018

Я начал создавать веб-страницу, которая использует API с другого веб-сайта для получения телефонных номеров для проверки веб-сайтов, что я уже работал с Python.Однако, когда я пытаюсь использовать cURL для получения данных JSON из API, он ничего не возвращает.Код для PHP приведен ниже.

echo "Requesting number...";
$url = 'api.php'; # changed from the actual website

$params = array(
    'metod' => 'get_number', # misspelt because it is not an english website
    'apikey' => 'XXXXXXXXXXXXXXXXXXXXXXXXX',
    'country' => 'RU',
    'service' => 'XXXXX',
 );

$ch = curl_unit();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);

$result = curl_exec($ch);
if(curl_errno($ch) !== 0) {
    error_log('cURL error when connecting to ' . $url . ': ' . curl_error($ch));
}

curl_close($ch);

print_r($result);`

Я ожидаю, что когда код выполняется на сервере, он должен выдать весь JSON из файла, который я затем смогу использовать позже, чтобы выбрать только определенныечасти его использовать в другом месте.Однако фактические результаты таковы, что он ничего не печатает, как показано здесь: https://imgur.com/sdCYhlw

1 Ответ

0 голосов
/ 23 декабря 2018

Я не уверен, почему ваш код не работает, но более простой альтернативой может быть использование file_get_contents:

echo "Requesting number...";
$url = 'api.php'; # changed from the actual website

$postdata = http_build_query(
    array(
        'metod' => 'get_number', # misspelled because it is not an English website
        'apikey' => 'XXXXXXXXXXXXXXXXXXXXXXXXX',
        'country' => 'RU',
        'service' => 'XXXXX'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);
$result = file_get_contents($url, false, $context);
print_r($result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...