Jak zpracovat POST metodu z CURL

BuMoRi
Člen | 109
+
0
-

Ahoj, poprvý zkouším curl. Podle jednoho tutoriálu jsem vyzkoušel GET, DELETE, to je OK, ale teď zkouším POST takto:

<?php
		$url = 'http://localhost/cms/api/post/';
		$data = '{"id" : "123456", "autor" : "Autor", "nazev" : "Kniha"}';

		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
		curl_setopt($ch, CURLOPT_FAILONERROR, true);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_HTTPHEADER, array(
				'Content-Type: application/json',
				'Content-Length: ' . strlen($data))
		);
		curl_exec($ch);
?>

Myslel jsem, že k datům bych se mohl dostat v metodě actionPost takto:

<?php
	$post = $this->getHttpRequest()->getPost();
?>

Problém je, že vlastně ani nevím, jak toto testovat/debugovat… Byl bych vděčný za jakoukoliv radu.

David Matějka
Moderator | 6445
+
+2
-

ahoj, pouzij getRawBody, nad kterym pak zavolas json decode

BuMoRi
Člen | 109
+
+1
-

Díky, tak už jsem docílil toho, co jsem potřeboval:

<?php
    $post = Json::decode($this->getHttpRequest()->getRawBody());
	$this->shopItemManager->insertItemApi($post);
?>

Pak jsem data uložil jako $post->id atd.
Ale ještě by mě teda zajímalo, jak bych si mohl někde v průběhu dumpnout tu proměnnou $post? Jde to?

Editoval BuMoRi (13. 9. 2018 18:01)

Lukes
Silver Partner | 68
+
0
-

No ona bude prázdná pokud to pošleš jako application/json. Pokud by si to tam chtěl, musel by si to poslat jako typ application/x-www-form-urlencoded nebo multipart/form-data.