Я пытаюсь отправить JSON на URL-адрес API. Я отправляю json от test.php
и получаю данные от api.php
. Я хочу записать данные в текстовый файл, но ничего не регистрируется, я предполагаю, что $ data возвращает null? В моем test.php
файле он продолжает возвращать «Sent BAD, request terminated». Что я делаю не так? Как мне это исправить?
test.php
<?php
$ch = curl_init();
$array = array('foo' => 'bar');
curl_setopt($ch, CURLOPT_URL,"https://dropchat.net/api.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($array));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close ($ch);
if ($server_output == "OK") {
echo "Sent OK";
} else {
echo "Sent BAD, request terminated.";
}
?>
api.php
<?php
$data = json_decode(file_get_contents('php://input'), true);
$fp = fopen("myText.txt","wb");
fwrite($fp, $data);
fclose($fp);
?>
Добавьте проверку ошибок, api.php
чтобы знать, что произошло.
Вы не можете записать массив в файл, вы можете записать только строку. Итак, напишите foo
элемент массива.
<?php
$data = json_decode(file_get_contents('php://input'), true);
if ($data === null) {
echo json_last_error_msg();
} else {
file_put_contents("myText.txt", $data['foo']);
echo "OK";
?>
Затем измените вызывающего абонента, чтобы распечатать сообщение об ошибке:
$server_output = curl_exec($ch);
curl_close ($ch);
if ($server_output == "OK") {
echo "Sent OK";
} else {
echo "Sent BAD, reason: $server_output";
}
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения