Arduino Http-Post mit JSON
Ich versuche zu posten ein json-Daten per Arduino.Wenn ich versuche, diesen code.ı schickt ein json-Daten mit QueryString.Wenn ı versuchen, diesen code der server-Antwort, die mich mit Falschen QueryString-format.Die meine ist, ich bin verbunden zu server und server habe meine Daten.
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);
}
Aber Mein Main Plan ist, schicken Sie mir das json-Daten mit querystring.Wenn ı Versuchen, diesen code ;
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");
Bekomme ich einen HTTP-Fehler 400. Die Anfrage ist schlecht gebildet.
Jemand eine Ahnung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Ihr URI Leerzeichen enthält und enthalten kann, andere Charaktere zu verwechseln, das format der post-Anforderung. Müssen Sie Kodieren diese Zeichen.
Soweit ich sagen kann, ist die Arduino-standard-Bibliotheken enthalten keine form der urlEncode-Methode, die Häufig in anderen Sprachen und Bibliotheken, so müssen Sie entweder erstellen Sie Ihre eigenen oder für einen Blick.
Ihre resultierende code wäre so etwas wie:
Einige Diskussion über die Schaffung eines uriEncode Funktion ist auf der Arduino Forum und es erscheint auch ein Arbeitsweise auf hardwarefun.com