Uno sguardo all'API HTTP WordPress wp_remote_get - the Arguments

Negli ultimi due post, abbiamo preso una breve panoramica del wp_remote_get funzione così come un'implementazione pratica di come usarlo.

Prima di passare ad altri aspetti dell'API HTTP di WordPress, è importante sapere esattamente quali informazioni vengono restituite da una chiamata remota utilizzando wp_remote_get in modo che tu possa avere una piena comprensione dei dati che vengono restituiti, scrivere un codice più difensivo e scrivere richieste più complicate in caso di necessità.

Quindi in questo ultimo articolo sull'esecuzione OTTENERE richieste, esamineremo esattamente questo.


Una recensione della richiesta

Ricorda che ogni volta che fai una richiesta usando wp_remote_get, tu no solo devi specificare un URL. Inoltre, è anche possibile inviare una matrice opzionale di argomenti, ognuno dei quali può causare una diversa risposta del server Se sta cercando informazioni particolari.

Gli argomenti

In molti casi, gli argomenti non saranno necessari in quanto i valori predefiniti saranno sufficienti; tuttavia, se stai lavorando con un'API avanzata o stai cercando una piena comprensione degli argomenti, le seguenti informazioni dovrebbero spiegare quali sono gli argomenti disponibili, come utilizzarli e l'impatto che ha sulla richiesta fatto.

Metodo

Questo argomento si riferisce al genere della richiesta che è stata fatta. Il fatto è che, dal momento che stiamo usando wp_remote_get, ovviamente stiamo facendo esplicitamente un OTTENERE richiesta.

Detto questo, l'argomento accetterà, OTTENERE, INVIARE, e CAPO. Se si sta optando per utilizzare la versione più recente del protocollo HTTP, è possibile specificare anche OPZIONI, METTERE, ELIMINA, COLLEGARE, e TRACCIA.

Questi particolari metodi vanno oltre lo scopo di questo particolare articolo dal momento che ci stiamo concentrando principalmente su OTTENERE richieste, ma volevo menzionarle tutte qui per completezza.

Tempo scaduto

Questo argomento indica per quanto tempo la richiesta deve attendere prima di arrendersi in attesa di una risposta. Il valore è specificato in secondi e il valore predefinito è cinque.

Quindi, in pratica, stai dicendo che "avviare una richiesta e attendere cinque secondi per una risposta.Se non viene ricevuta alcuna risposta, restituire un errore".

Anche se non ho mai avuto un problema con il valore predefinito, questo potrebbe essere qualcosa che vale la pena cambiare se ti capita di lavorare con un server che è occupato, e / o che gestisce solo un basso numero di richieste al secondo.

reindirizzamento

Simile all'argomento di timeout, questo valore specifica per quanto tempo la richiesta deve attendere un reindirizzamento prima di rinunciare.

La cosa è, OTTENERE raramente le richieste si traducono in un reindirizzamento. Più spesso che non, OTTENERE le richieste tenteranno di connettersi a un URL per recuperare i dati (e potrebbe o non inviare dati nella stringa di query), e quindi gestiranno semplicemente la risposta o l'errore una volta che la richiesta è stata completata o scaduta.

Se, tuttavia, si prevede di implementare qualsiasi tipo di meccanismo di reindirizzamento, questo valore può essere specificato in secondi. E, come per l'argomento di timeout, il valore predefinito è cinque secondi.

HTTPVersion

Questo si riferisce alla versione del protocollo HTTP che viene utilizzato. Sebbene gli aspetti tecnici di questo siano oltre lo scopo di questa serie, ogni versione del protocollo supporta un numero variabile di un tipo di richiesta.

Abbiamo coperto ciascuno di questi sopra e perché stiamo facendo esplicitamente OTTENERE richieste con l'uso di wp_remote_get, allora questo valore non è quello che dovremmo modificare.

Tuttavia, per completezza, al momento della stesura di questo documento, il protocollo HTTP ha attualmente la versione 1.0 e 1.1. A seconda della versione del protocollo supportato dal tuo server, potresti essere in grado di utilizzare una più ampia varietà di metodi.

Blocco

Questo argomento si riferisce alla possibilità di effettuare una richiesta senza effettivamente ostacolare il caricamento di una pagina o attendere che una richiesta venga completata.

Per impostazione predefinita, questo valore è impostato su true come nel contesto di OTTENERE richieste, noi volere aspettare che la risposta torni in modo che possiamo fare qualcosa con esso; tuttavia, se stai facendo una richiesta (anche se questo è in genere fatto con a INVIARE richiesta) per la quale non ti interessa una risposta, puoi impostare questo valore su false.

intestazioni

Questo argomento include tutto ciò che si desidera inviare attraverso il filo diverso dai valori predefiniti. Quando si esegue a OTTENERE richiesta, personalmente devo ancora trovare una ragione per utilizzare qualcosa di diverso da quello che viene inviato di default; tuttavia, ciò non significa tu non sarà necessario inviare qualcosa di più specializzato in futuro.

Le intestazioni generalmente sono costituite da informazioni come il tipo di contenuto, la codifica del contenuto, il tipo MIME e così via.

Questi valori particolari vanno oltre lo scopo di questo articolo; tuttavia, ho intenzione di rivederli quando parliamo di richieste remote generali. Il punto nel menzionarli qui è semplicemente quello di definire esattamente ciò che è possibile dato questo articolo.

Corpo

Questo argomento è semplice e per chiunque abbia lavorato con i dati di risposta sa che questo è sostanzialmente il contenuto della richiesta che viene inviata.

Nel contesto di a OTTENERE richiesta, questo può o meno essere costituito da qualsiasi valore. Spesso volte, OTTENERE le richieste includono parametri di stringa di query che possono servire come contenuto per la richiesta; tuttavia, se hai bisogno di specificare più informazioni delle coppie chiave / valore o hai bisogno di un posto esplicito per dichiarare il tuo contenuto, allora questo è l'argomento in cui lo faresti.

Biscotti

Infine, se ci sono dei cookie che devi inviare insieme alla tua richiesta, allora questo è il parametro in cui devi specificarli.

Questo è ovviamente più utile nel contesto della richiesta di dati da un URL con il quale hai stabilito una sorta di sessione o in cui alcune informazioni attualmente risiedono sul computer client - come un cookie, ovviamente - e che è probabilmente necessario inviare attraverso il cavo al server.

Come con molti degli argomenti sopra, questo è qualcosa che non è usato frequentemente in a OTTENERE richiesta, ma è ancora aperta per le specifiche, comunque.


Conclusione

Sulla base di ciò che abbiamo visto finora, questo articolo potrebbe fare wp_remote_get sembra eccezionalmente più complicato del nostro esempio pratico. Il fatto è che non deve essere così!

Ricorda, le informazioni condivise qui sono puramente per dimostrare ciò che tu può utilizzare mentre si lavora con questo particolare metodo API - non ciò che si avere usare.

Mentre continuiamo a guardare l'API HTTP, vedremo questi argomenti particolari sempre di più; tuttavia, vengono utilizzati in modo diverso - e spesso più frequentemente - rispetto ad altri metodi. Tuttavia, vale la pena coprirli qui come loro siamo parte dei parametri accettati di wp_remote_get.