HTTP/1.1 400 Bad Request enviando datos por GET

Hola estimados
En mi servidor Web tengo un php que inserta valores en una tabla MySQL.
Si mando valores directamente por el explorador de la siguiente manera:

xxxxxx.com - xxx sex videos free hd porn Resources and Information. 10:30%27&tarjeta=1886855187&equipo=135178112139&KmHs=569&valor=1.92&dispositivo=c4a6d890-3b44-11e8-b90f-be7c35964ec5

ME FUNCIONA PERFECTO, es decir me inserta los valores en la tabla.

Ahora si lo mando por arduino con el siguiente código:

  if (client.connect(servidor, 80)) {
    Serial.println("connected");
    client.print("GET /iotphp/cargacombustible.php?fecha='2018-5-6 21:9'&tarjeta=1886855187&equipo=135178112139&KmHs=569&valor=1.92&dispositivo=c4a6d890-3b44-11e8-b90f-be7c35964ec5");
    client.println(" HTTP/1.0");
    client.println();
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

Se me conecta al servidor pero el resultado que tengo en el serial es:

IP ASIG.X DHCP
192.168.1.11
connecting…www.xxxxxx.com
connected
HTTP/1.1 400 Bad Request
Date: Mon, 07 May 2018 00:37:48 GMT
Server: Apache/2
Content-Length: 347
Connection: close
Content-Type: text/html; charset=iso-8859-1

400 Bad Request

Bad Request

Your browser sent a request that this server could not understand.

Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the request.

Tengo otras partes de código de Arduino para leer datos de tablas MySql similares y me funcionan bien, me falla solo lo anterior.

El Código php es simple y si me funciona desde el explorador es de suponer que el problema no esta en el php.

<?php
$CargaFecha         = $_GET["fecha"];
$PersonalTarjeta    = htmlspecialchars($_GET["tarjeta"],ENT_QUOTES);
$EquipoLlavero      = htmlspecialchars($_GET["equipo"],ENT_QUOTES);
$CargaKmHs          = htmlspecialchars($_GET["KmHs"],ENT_QUOTES);
$CargaValor         = htmlspecialchars($_GET["valor"],ENT_QUOTES); 
$dispositivoCodigo  = $_GET["dispositivo"];

if (!is_numeric($PersonalTarjeta))
    { 
     exit("#1");
    }

if (!is_numeric($EquipoLlavero))
    { 
     exit("#2");
    }

if (!is_numeric($CargaKmHs))
    { 
     exit("#3");
    }

if (!is_numeric($CargaValor))
    { 
     exit("#4");
    }

if (empty($dispositivoCodigo))
    { 
     exit("#5");
    }

if ((include '../../Connections/conexionMysql.php') == FALSE) {
    exit ("#6");
   }
if ((include '../../Connections/functions.php') == FALSE) {
    exit ("#7");
   }

$dbc  = mysql_connect($mysql_servidor,$mysql_usuario,$mysql_clave);
if ($dbc==0){
    exit("#8");
   }
$dbc1 = mysql_select_db($mysql_base, $dbc);
if ($dbc1==0){
    exit("#9");
   }
$query1 = "SELECT DispositivoID FROM dispositivos where dispositivoActivo=1 and dispositivoCodigo= '".$dispositivoCodigo ."'";
$result1 = mysql_query($query1,$dbc);
if (!$result1) {
        mysql_free_result($result1);
        mysql_close($dbc);
        exit("#10");
}
$csv_outputD='';
while($fila = mysql_fetch_array($result1, MYSQL_BOTH))
      {
        $csv_outputD .= $fila["DispositivoID"];
        $csv_outputD .=  "\n";
      }
mysql_free_result($result1);

if (!$csv_outputD=='') { 

   $query  = "INSERT INTO `CargasGasoil` (`CargaID`, `CargaFecha`, `PersonalTarjeta`, `EquipoLlavero`, `CargaKmHs`, `CargaValor`, `dispositivoCodigo`) VALUES ";
   $query .= "(NULL, $CargaFecha,'$PersonalTarjeta','$EquipoLlavero','$CargaKmHs','$CargaValor','$dispositivoCodigo' )";
   $result = mysql_query($query,$dbc);

   if (!$result) {
        mysql_free_result($result);
        mysql_close($dbc);
        exit("#11");
   } else {
        echo '!';
   }
   mysql_free_result($result);

} else { 
       echo '#12'; 
       }

mysql_close($dbc);
?>

Me pueden dar una mano…hace dos días que estoy con esto y no logro dar con la tecla.
Muchas Gracias.
Saludos.

Veo que no te respondió nadie. Yo no lo hice anteriormente porque habría que hacer pruebas y verificar, y no pude hacerlo. Sin embargo, dado que nadie respondió todavía, me animo a decirte la teoría que tengo al respecto del problema que describes (teoría que es necesario probar, pues no lo hice).

Pienso que hay algo mal en el protocolo HTTP que envías desde Arduino. No sé qué es lo que está mal, quizá el orden. Me refiero a esta parte de tu código:

   client.print("GET /iotphp/cargacombustible.php?fecha='2018-5-6 21:9'&tarjeta=1886855187&equipo=135178112139&KmHs=569&valor=1.92&dispositivo=c4a6d890-3b44-11e8-b90f-be7c35964ec5");
    client.println(" HTTP/1.0");

Compara esa parte del protocolo que envías con lo que envías en otras partes (que indicas que funciona).

Acabo de ver nuevamente, y se me ocurre que el problema puede ser por el espacio y/o los dos puntos que hay en la fecha-hora. Prueba eliminándolos.

Ener.
Gracias por tu respuesta.
Lo pruebo y t aviso.
La verdad, Gracias...me estaba sintiendo sólo...

No le estás pasando el nombre del host por la petición http ni el tipo de conexión:

"Host: www.xxxxxx.com\r\n" + 
"Connection: close\r\n\r\n");