WordPress fornisce un insieme di funzioni core per gestire facilmente richieste HTTP, come API REST o comunicazioni esterne. Il sistema astratto di HTTP API in WordPress semplifica l'invio di richieste GET, POST e altro ancora, gestendo automaticamente errori, redirect e compatibilità server.
wp_remote_get()
La funzione wp_remote_get() è utilizzata per inviare richieste HTTP GET a un URL specificato.
$response = wp_remote_get( 'https://example.com/api/data' );
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
$body = wp_remote_retrieve_body( $response );
echo $body;
}
wp_remote_post()
La funzione wp_remote_post() invia richieste HTTP POST, ideale per inviare dati a un server.
$response = wp_remote_post( 'https://example.com/api/data', array(
'body' => array(
'key1' => 'value1',
'key2' => 'value2'
)
) );
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
$body = wp_remote_retrieve_body( $response );
echo $body;
}
wp_remote_request()
wp_remote_request() è una funzione più generica che permette di specificare il metodo HTTP desiderato, come PUT o DELETE, oltre a GET e POST.
$response = wp_remote_request( 'https://example.com/api/data', array(
'method' => 'DELETE'
) );
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
$body = wp_remote_retrieve_body( $response );
echo $body;
}
Gestione delle risposte
Dopo aver effettuato una richiesta, WordPress fornisce funzioni helper per estrarre facilmente informazioni utili:
- wp_remote_retrieve_body( $response ) - Recupera il corpo della risposta.
- wp_remote_retrieve_response_code( $response ) - Ottiene il codice HTTP della risposta.
- wp_remote_retrieve_headers( $response ) - Accede agli header HTTP della risposta.
Conclusione
Le funzioni HTTP API di WordPress sono strumenti potenti per interagire con servizi esterni, mantenendo la compatibilità con diversi ambienti server. Utilizzandole correttamente, è possibile gestire comunicazioni robuste e sicure senza dover scrivere codice HTTP a basso livello.