Go Down

Topic: Webduino e Authorization non richiesta (Read 450 times) previous topic - next topic

amacbr

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:
Code: [Select]
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><br>\n";
P(Raw_head) = "raw.html requested.</h1><br>\n";
P(Parsed_head) = "parsed.html requested.</h1><br>\n";
P(Good_tail_begin) = "URL tail = '";
P(Bad_tail_begin) = "INCOMPLETE URL tail = '";
P(Tail_end) = "'<br>\n";
P(Parsed_tail_begin) = "URL parameters:<br>\n";
P(Parsed_item_separator) = " = '";
P(Params_end) = "End of parameters<br>\n";
P(Post_params_begin) = "Parameters sent by POST:<br>\n";
P(Line_break) = "<br>\n";


questa e' la funzione da default:
Code: [Select]
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:
Code: [Select]
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:
Code: [Select]
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?
"Cosi non si va avanti..." disse il gambero

Go Up