Si je comprend bien ce que tu veux :
Oui c'est faisable.
Par exemple avec Webduino, tu définit un premier handler par défaut qui va systématiquement renvoyer vers le serveur en renvoyant :
HTTP/1.1 303 See Other
Location: http://ip-de-ton-serveur
Et puis un autre handler qui traitera la requête de GET porvenant de la page hébergée sur le serveur.
Par exemple http://ip-de-ton-arduino/gettemp pour lire la température au format JSON.
Avec Webduino ca devrait donner :
char buffer[50];
void defaultCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
server.httpSeeOther("http://ip.de.ton.serveur/page-renvoyee.html");
return;
}
void getTempCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
server.httpSuccess("application/json");
sprintf( buffer, "{ temp:%d }", getTemperature() );
server.write( buffer, strlen(buffer) );
return;
}
void setup()
{
.... j'en passe ... je met pas tout
webserver.setDefaultCommand(&defaultCmd);
webserver.addCommand("gettemp",&getTempCmdCmd);
....
}
Mais quel intérêt de faire cela plûtot que d'ouvrir directement la page de ton serveur ?
Le seul intérêt que je voit serait si tu a plusieurs Arduino qui font la même chose, l'utilisateur se connecte à l'Arduino à laquelle il veut parler et la redirection renvoie non seulement vers le serveur qui peux héberger des pages plus grosses et plus complexes mais en précisant de quelle Arduino vient la redirection.
void defaultCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
IPAdress myIp = Ethernet.localIP();
sprintf( buffer, "http://ip.de.ton.serveur/fromArduino?ip=%d.%d.%d.%d", myIP[0], myIP[1], myIP[2], myIP[3] );
server.httpSeeOther("http://ip.de.ton.serveur/page-renvoyee.html");
return;
}
Ainsi le serveur sait facilement d'où provient la redirection (bon peut être sait-il de toute façon récupérer l'adresse source de la redirection autrement mais ca me parait plus clair de la faire passer comme argument de l'URL).
Je ne sais pas si çà répond à ta question.