Salve a tutti,
penso possiate aiutarmi, sto usando webduino su un Arduino UNO + Ethernet Shield e sto andando incontro ad un problema di autorizzazioni, quando richiamo la funzione di default va tutto bene, quando provo a richiamare la funzione che rende una stringa json mi risponde UNAUTHORIZED, vi posto il codice:
questa e' la dichiarazione delle variabili:
P(Page_start) = "<html><head><title>Arduino Mattia 1.0</title></head><body>\n";
P(Page_end) = "</body></html>";
P(Get_head) = "<h1>GET from ";
P(Post_head) = "<h1>POST to ";
P(Unknown_head) = "<h1>UNKNOWN request for ";
P(Default_head) = "unidentified URL requested.</h1>
\n";
P(Raw_head) = "raw.html requested.</h1>
\n";
P(Parsed_head) = "parsed.html requested.</h1>
\n";
P(Good_tail_begin) = "URL tail = '";
P(Bad_tail_begin) = "INCOMPLETE URL tail = '";
P(Tail_end) = "'
\n";
P(Parsed_tail_begin) = "URL parameters:
\n";
P(Parsed_item_separator) = " = '";
P(Params_end) = "End of parameters
\n";
P(Post_params_begin) = "Parameters sent by POST:
\n";
P(Line_break) = "
\n";
questa e' la funzione da default:
void helloCmd(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
server.httpSuccess();
if (type == WebServer::HEAD)
return;
server.printP(Page_start);
switch (type)
{
case WebServer::GET:
server.printP(Get_head);
break;
case WebServer::POST:
server.printP(Post_head);
break;
default:
server.printP(Unknown_head);
}
server.printP(Default_head);
server.printP(tail_complete ? Good_tail_begin : Bad_tail_begin);
server.print(url_tail);
server.printP(Tail_end);
server.printP(Page_end);
}
e questa la funzione che mi restituisce il messaggio UNAUTHORIZED:
void sendJsonStatusString(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
if (type == WebServer::POST)
{
server.httpFail();
return;
}
server.httpSuccess(false, "application/json");
if (type == WebServer::HEAD)
return;
if (type == WebServer::GET)
server.printP("pippooooo");
//server.printP(createJsonStatusString());
}
la gestione del server e delle chiamate e' questa:
void setup() {
Ethernet.begin(mac, ip);
webServer.setDefaultCommand(&helloCmd);
webServer.addCommand("jsonStatus", &sendJsonStatusString);
webServer.begin();
}
La versione di Webduino che ho scaricato contiene anche due nuovi metodi per l'autenticazione (httpUnauthorized() e checkCredentials()) ma io non li uso!!
Potete aiutarmi?