Kdyby/Curl jak se odeílají data v post(array)
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- kleinpetr
- Člen | 480
Ahoj, chci se zeptat jak se odešlou data pomocí kdyby/curl metodou post ? docela s tím teď bojuji a potřeboval bych nějaké info.
$data['var1'=>1,'var2'=>2...];
$request = new Kdyby\Curl\Request('some-url.com/path');
$response = $request->post($data);
když to doešlu takhle, tak mi vyhodí exceptionu 415 mediaType..
a teď se chci zeptat když ten server očekává příchod JSON a já
nastavím
$request = new Kdyby\Curl\Request('some-url.com/path');
$request->headers['Accept'] = 'application/json';
$request->headers['Content-Type'] = 'application/json';
$response = $request->post($data);
Tak hodí bad request 400
jak bych to tedy měl udělat správně ?? nejprve převést pole do jsonu a poté až poslat, tedy takhle ?
$jsonData = Json::encode($data);
$request = new Kdyby\Curl\Request('some-url.com/path');
$request->headers['Accept'] = 'application/json';
$request->headers['Content-Type'] = 'application/json';
$response = $request->post([$jsonData]);
Nebo jak to tam funguje ? díky
- Filip Procházka
- Moderator | 4668
To přece záleží na tom, v jakém formátu to očekává server.
Pokud chce json, tak ideálně
$request = new Kdyby\Curl\Request('some-url.com/path');
$request->headers['Accept'] = 'application/json';
$request->headers['Content-Type'] = 'application/json';
$response = $request->post(Json::encode($data)); // všimni si že tady nepředávám pole, ale ten JSON
Pokud chceš udělat klasický form-encoded POST
$data = ['var1'=>1,'var2'=>2...];
$request = new Kdyby\Curl\Request('some-url.com/path');
$response = $request->post($data);