Приветствую!
Задача: На одном сервере есть папка с .txt файлами, в них чистый JSON. Читаю данные из этих файлов скриптом client.php находящимся рядом с папкой, теперь надо отправить считанные данные на другой сервер. На удаленном сервере лежит скрипт server.php, который эти данные должен принять, отдать ответ скрипту client.php, обработать и сохранить в .txt файл в JSON-формате.
Считываю файлы из client.php без проблем. Из server.php сделать запись в файл - тоже ок. Проблема посередине. Никак не могу отправить данные, судя по всему, они туда, к server.php даже не доходят. Что я делаю не так?
client.php:
<?php
$api_key = 'B12347162936387BB33534B85C873'; // Для простой проверки
$api_url = 'http://remote.dev/server.php'; // Куда отправлять
$file = '20140525/data.txt'; // Локальный файл с json-данными
$json_data = file_get_contents( $file ); // Читаем из файла
// Пробуем отправить, для начала только $api_key
$curl = curl_init($api_url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($api_key));
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type:application/json',
'Content-Length:'.strlen($api_key)
));
$json_response = curl_exec($curl);
$curl_errorno = curl_errno($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
echo $json_response; // Выводим ответ
curl_close($curl);
?>
server.php:
<?php
$api_key = 'B12347162936387BB33534B85C873'; // Для сверки
print_r ($_POST); // Смотрим прилетели ли данные?
print_r ($_REQUEST); // Может сюда прилетели?
?>
Получаемый ответ - 2 пустых массива:
Array ( ) Array ( )
Что не так? Бьюсь головой о стену уже час. Гугл не помог, документация по curl_setopt() тоже. Пробовал отправлять различные вариации - $api_key, $data, собирал их в один массив, переводил в json и так далее. В ответ - то же самое, пустые массивы.