Svileff
Новичок
Доброе утро, Помогите разобраться с PUT запросом. Отправляю данные JSON и приходит пустой массив. Что не так сделал?
Отправляю через:
Принимаю у сервера:
Отправляю через:
Код:
public function Json_put($array,$url){
$array = json_encode($array, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_PUT, 1); //переключаем запрос в PUT
curl_setopt($ch, CURLOPT_POSTFIELDS, $array);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=utf-8"));
return $result = curl_exec($ch);
curl_close($ch);
}
Код:
function getFormData($method) {
$json_str = file_get_contents('php://input');
// GET или POST: данные возвращаем как есть
if ($method === 'GET') return $_GET;
if ($method === 'POST') return $json_str;
// PUT, PATCH или DELETE
$_DAT = array();
$exploded = explode('&', $json_str, true);
foreach($exploded as $pair) {
$item = explode('=', $pair);
if (count($item) == 2) {
$_DAT[urldecode($item[0])] = urldecode($item[1]);
}
}
return $_DAT;
}
$method = $_SERVER['REQUEST_METHOD'];
// Получаем данные из тела запроса
$formData = $this->getFormData($method);