Go Down

Topic: Problema parseando JSON con WiFiClient (Read 326 times) previous topic - next topic

franchef

May 30, 2019, 06:48 pm Last Edit: May 30, 2019, 08:39 pm by franchef
Buenas tardes.

Tengo un servidor local con el framework de Django. Este servidor lo lanzo desde PyCharm.
Lo que necesito es recuperar los datos de un JSON almacenado en el servidor, el cual tiene los datos de estado de un LED, los cuales son enviados a través de una aplicación android, pero no consigo que la consola Serial me muestre los datos.
La conexión la hago a través de WiFiClient, conectandome a mi IP local(192.168.1.131 en este caso), que es la misma que el host, y con puerto 8000.
La GET request es correcta, pues el servidor lanzado devuelve como respuesta "200, OK".
Mi código es prácticamente un código de ejemplo de GET request; dentro del loop tengo lo siguiente:
Code: [Select]

String url = "/pycom_rest/NodeMCUv0_9/LEDRGB/";
  if (client.connect(host, port)) {
    Serial.print(F("Conexion con el host acertada"));
    Serial.println(host);
    Serial.println(F("GET "));
    client.println(String("GET ") + url + " HTTP/1.1\r\n" +
                  "Host: " + host + "\r\n" +
                  "Connection: close\r\n\r\n");
  } else {
    Serial.println("No conectado al servidor de ips");
  }

    while (client.available()){
      String linea = client.readStringUntil('\r');
      Serial.print(linea);
    }
    client.stop();


El bucle "while(client.available())..." no devuelve nada,y no consigo entender el por qué.
El JSON está formateado de esta manera:
Code: [Select]

{"Name":"Color"
  "Value":2
  "Magnitude":"color"}


Los datos sin procesar serían así:  "data": [{"Name": "Color", "Value": 2.0, "Magnitude": "color"}]

EDIT: El caso es que en la consola de PyCharm, al imprimir los datos del GET, sí que me devuelve la información que yo deseo, por lo que me hace pensar que arduino la detecta pero no la imprime.
¿Es posible algo asi?

Un saludo y gracias de antemano

franchef

Podeis cerrar este tema, ya lo solucioné por mi cuenta

surbyte

Excelente y cual fue la solución porque eso es parte de lo que cobramos en el foro por participar, no se si entiendes la ironía. Es importante que tema que se abre dentro de lo posible muestre su solución para que los demás aprendan.

Go Up