Inviare dati JSON con PHP e Guzzle
Guzzle è una libreria che ci consente di creare un client HTTP con PHP.
L'abbiamo già vista varie volte, ed oggi la vediamo per l'invio dei dati JSON in POST ad una API.
Non vi posto tutto il form perchè è la solita solfa.
Vi posto solo il codice che il form invia dopo la validazione:
include_once './libs/guzzle/autoload.php';
use GuzzleHttp\Client;
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['btn_invia'])) {
$data = array(
"email" => trim(strtolower($_POST['email'])),
"password" => trim($_POST['password']),
"nome" => $nome,
"indirizzo" => trim($_POST['indirizzo']),
"citta" => ucfirst(strtolower(trim($_POST['citta']))),
"cap" => trim($_POST['cap']),
"provincia" => trim(strtoupper($_POST['provincia'])),
"nazione" => ucfirst(strtolower(trim($_POST['nazione']))),
"iva" => trim($_POST['piva']),
"cf" => trim($_POST['cf']),
"sdi" => trim($_POST['sdi']),
"pec" => trim($_POST['pec']),
"telefono" => trim($_POST['telefono']),
"tipo" => $tp,
"sito" => trim($_POST['sito'])
);
$json = json_encode($data);
$headers['Content-Type'] = 'application/json';
$client = new Client(['base_uri' => 'https://www.sito.com/api/, 'timeout' => 5.0]);
$response = $client->request(
'POST',
'add.php',
array('headers' => $headers, 'body' => $json)
);
$res = json_decode($response->getBody(), true);
echo $res;
}
Enjoy!
php guzzle json post
Commentami!