Errore HTTP “400 Bad Request”: cos’è e come si risolve

Errore HTTP “400 Bad Request”: cos’è e come si risolve

Natura dell’errore: si tratta di un problema molto comune e che può capitare per le cause più svariate. La notifica di errore HTTP 400 è il modo in cui un server ci dice che è stato generato un errore sul formato HTTP stesso, che non è stato rispetto per cui non può essere inoltrata o evasa la risposta (causa tipica: errori di programmazione del servzio)

Da cosa dipende un errore 400? Si tratta di una notifica del server che avvisa che la pagina che avete richiesto non è disponibile, perchè si trova ad essere in un formato errato. Ad esempio, su server IIS un errore 400 può essere dovuto all’intestazione dell’header della pagina di dimensione nulla (pari a zero, ovvero vuota). In PHP un 400 viene codificato come errore “Bad Request” (“cattiva richiesta”, nel senso di mal formulata), e capita ad esempio se evochiamo un servizio esterno nel codice, ad esempio per ottenere un file XML o un flusso JSON, e sbagliamo ad associare i parametri. Nello specifico, il W3C indica che l’errore 400 fa riferimento ad un errore di sintassi nella scrittura dell’URL (malformed syntax), per cui la richiesta non andrebbe ripetuta in seguito se non dopo che l’errore sia stato corretto a monte.

A livello pratico, le casistiche più comuni legati all’errore di tipo 400 possono essere le seguenti:

  • errore 400 su Youtube: può capitare ad esempio qualora si provi ad accedere a Youtube su Android, oppure nel caso in cui si provi ad accedere a Youtube con una smart TV in wireless. In quest’ultimo caso dovrebbe bastare, per risolvere, resettere il dispositivo smart alle impostazioni di fabbrica (per il lettore blu-ray Philips, ad esempio)
  • errore 400 su Android: in questo caso può capitare se si prova ad effettuare un aggiornamento di sistema, ad esempio, da una versione alla successiva o più recente. In questi casi la cosa migliore è quella di risincronizzare l’account Gmail utilizzato per l’accesso, oppure effettuare un ripristino soft del sistema
  • una bad request 400, in altri casi, può essere risolta esclusivamente con un aggiornamento di sistema o di impostazioni effettuabile qualora diventi disponibile.

A livello più tecnico, inoltre, un errore 400 è legato ad errori di programmazione, oppure a pratiche di cattiva programmazione: ad esempio, mi è capitato di recente utilizzato la libreria di Google Maps.

function GetDrivingDistance($lat1, $lat2, $long1, $long2)
{
    $url = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=".$lat1.",".$long1."&destinations=".$lat2.",".$long2."&mode=driving&language=it-IT";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $response = curl_exec($ch);

...

Se non vengono eseguiti opportuni controlli sulle variabii in ingresso $lat1, $lat2, $long1 e $long2, la funzione in questione potrebbe inviare una richiesta via cURL una richiesta che la API di Google Maps non potrà evadere in alcun modo. Prima di inviare la richiesta, dunque, è essenziale inserire un controllo che verifichi che quei quattro dati, trattandosi di calcolo della distanza in geolocalizzazione tra due punti, che siano effettivamente coordinate valide.

Come si risolve? L’errore 400 può essere risolto mettendo mano al codice (ovviamente se è possibile farlo), oppure riprovando ad accedere al servizio in un secondo momento.

Valutazioni utenti

0 / 5 ( 0% )

0 voti