imag777
Новичок
Доброго дня!
Необходимо отправить данные в формате JSON из файла А в файл Б, используя cURL, методом POST .
Тестовые данные (Файл А):
Кодируем:
Инициализируем cURL и отправляем в файл Б наши данные:
Содержимое файла Б:
Результат:
"array(0) { }"
Однако, если данные передавать как элемент ассоциативного массива (естественно, убрав из cURL Content-Type: application/json), например, то всё ок:
Вопрос: каким способом (в моём случае) можно передать данные не в виде элемента ассоциативного массива, а "чистым" json-ом? Или я на стороне приёма обрабатываю неправильно?
Спасибо откликнувшимся.
Необходимо отправить данные в формате JSON из файла А в файл Б, используя cURL, методом POST .
Тестовые данные (Файл А):
PHP:
$arr[0]['data_type'] = '1';
$arr[0]['data_content'] = 'some string';
$arr[1]['data_type'] = '2';
$arr[1]['data_content'] = 'some string2';
PHP:
$data = json_encode($arr);
PHP:
$url = <Путь к файлу Б>;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
var_dump($result);
PHP:
//Проверка:
var_dump($_POST);
"array(0) { }"
Однако, если данные передавать как элемент ассоциативного массива (естественно, убрав из cURL Content-Type: application/json), например, то всё ок:
PHP:
$data = array("data" => $data);
// Отправка
Спасибо откликнувшимся.