CURL Request s POST – POST data se neposílají

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
iwory
Člen | 147
+
0
-

Zdravím, vyzkoušel jsem už x různých příkladů jak přes curl poslat POST data ale za boha se je nedaří odeslat. Url se zavolá a data se vrátí v pořádku, ale to je vše.
Napadá mne snad jen otázka zda není něco potřeba povolit přímo v aplikaci. Jesti Nette (2.3) samo o sobě neblokuje požadavky nebo cokoliv podobného.

Poslední z testovaných pokusů:

$data = array("name" => "Tomas", "age" => "45");
$data_string = json_encode($data, JSON_UNESCAPED_UNICODE);

$curl = curl_init('http://api.web.cz/curl');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_string))
);

$response = curl_exec($curl);

Nette:

$this->payload->default_post = $_POST; //empty
$this->payload->post = $this->getHttpRequest()->getPost(); //empty
$this->payload->data = array('me' => 'test');
$this->sendPayload();

Díky moc za případné nakopnutí.

iwory
Člen | 147
+
0
-

Vyřešeno:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiHost);
curl_setopt($ch, CURLOPT_POST, count($apiData));
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($apiData));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Pavel Kravčík
Člen | 1195
+
0
-

Neskutečná chujovina… :/ Díky za navedení, místo počítání lenght jsem počítal počet a funguje to. Mám hroznýho nerva teď.