Go Down

Topic: Webduino e Authorization non richiesta (Read 457 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy