php - Enviar un HTTP POST a Arduino con cURL
(1)
Estoy tratando de enviar un HTTP POST a mi Arduino con un blindaje Ethernet de mi servidor con cURL , pero no funciona. Si envío valores POST a través de un formulario HTML o mediante el terminal cURL de Mac OS X , el Arduino recibe los datos, por lo que supongo que el código Arduino es correcto.
Esta es mi función CURL:
function curler($what,$arduinoip){
$url = "http://".$arduinoip;
extract($what);
$fields = array(
''blue'' => urlencode($blue)
);
foreach($fields as $key=>$value){$fields_string .= $key.''=''.$value.''&'';}
$fields_strings = rtrim($fields_string, ''&'');
// hasta aca todo bien
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_strings);
//execute post
$result = curl_exec($ch);
$curl_errno = curl_errno($ch);
$curl_error = curl_error($ch);
curl_close($ch);
if ($curl_errno > 0) {
echo "cURL Error ($curl_errno): $curl_error/n";
} else {
echo "Data received: $result/n";
}
}
Recibo dos respuestas:
cURL Error (28): ¡se ha agotado el tiempo de espera de connect ()!
y
Error cURL (7): no se pudo conectar al host
Si CURLOPT_CONNECTTIMEOUT no está declarado, no devuelve nada.
¿Qué pasa con mi código?
No agregue ''http: //'' antes de su IP host:
$url = $arduinoip;
Intenta aumentar tu límite de tiempo:
//200+ maybe?
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 250);