Я пытаюсь отправить JSON в модуль Arduino с ESP8266. У меня есть простой веб-сервер, ожидающий JSON с SSID и паролем, где должно быть подключено устройство.ESP8266 Кодирование содержимого запроса Arduino
ESP8266WebServer server(80);
server.on("/config", HTTP_POST, configHandle);
server.begin();
void handleConfig() {
String payload = server.arg("plain");
//convert JSON to char[]
//parse using jsmn lib
}
Что делать, если пароль содержит символы не ASCII? Как я могу обрабатывать запрос контента поставить эти аргументы метода:
WiFi.begin(ssid, pass);
Edit:
Пример: Если я посылаю JSON как:
{"pass": "test+test"}
Затем, когда я печатаю эту полезную нагрузку Я не получаю знак +
(но это знак ASCII)
Запрос (провода):
Char полезная нагрузка массив из платы:
JSON отправляется в поле запроса POST-метода. Итак, я действительно должен кодировать этот контент, используя метод кодирования URI? Почему библиотека меняет символ + на пробел, и как предотвратить это решение? – kris14an
[Данные POST также должны быть закодированы] (https://en.wikipedia.org/wiki/POST_ (HTTP) #Use_for_submitting_web_forms) –
ok, при кодировании этого json работает отлично, но есть некоторый способ для чтения этих данных с клиента поток соединения с использованием исходных байтов? – kris14an