Estoy tratando de subir un json de datos a través de Arduino.Cuando ı estoy tratando de este código.ı enviará un json de datos con QueryString.Si ı probar este código, el servidor me responde con Mal QueryString formato.Lo que significa es ı estoy conectado al servidor y el servidor tienes mis datos.

 if (client.connect(server, 80)) {
Serial.println("connected");
//Make a HTTP request:
client.println("POST /URL?query=jsondata HTTP/1.1");
client.println("Host: **.**.**.**");
client.println("Connection: close\r\nContent-Type: application/x-www-form-urlencoded");
client.print("Content-Length: ");
client.println(PostData.length());
client.println();
client.println(PostData);

}

Pero Mi Plan es enviar mis datos en json con querystring.Si ı prueba este código ;

client.println("POST /URL?query={request:{Header:{Username:kullaniciAdi,Password:123456},Item:{Serial:ABC123QWE,Data:100, DateOn:23/11/1986 15:45:24}}} HTTP/1.1");

Tengo un Error HTTP 400. La solicitud está mal formado.

Alguien Tiene una idea?

1 Comentario

  1. 1

    Sí, su URI contiene espacios, y pueden contener otros caracteres confundir el formato de la solicitud post. Usted necesita para codificar estos personajes.

    Medida de lo que puedo decir, el Arduino estándar de las bibliotecas no incluir ningún tipo de método urlEncode, que es común en otras lenguas y bibliotecas, así que usted tendrá que crear su propia cuenta o la de buscar uno.

    Su código resultante sería algo así como:

    String request = "/URL?query={request:{Header:{Username:kullaniciAdi,Password:123456},Item:{Serial:ABC123QWE,Data:100, DateOn:23/11/1986 15:45:24}}}";
    String encRequest = uriEncode(request); //need to write your own method for this...
    String post = "POST " + encRequest + " HTTP/1.1");
    client.println( post);

    Algunos de discusión sobre la creación de un uriEncode función es en la Foro Arduino y parece ser que hay también un método de trabajo en hardwarefun.com

    • hacer ı tiene que incluir cualquier biblioteca para el uso de Var y encodeURIComponent ?
    • Mis disculpas, pensé que esto era un javascript problema estoy enmendando mi respuesta para dar una más Arduino centrada en la respuesta

Dejar respuesta

Please enter your comment!
Please enter your name here