Hi, ich habe aktuell ein Problem bei der Nutzung des Espressif SDK für den ESP8266. Wenn ich versuche, per HTTP Post größere Datenmengen (im konkreten Fall ein SSL Zertifikat) zu übertragen, kommen nur Bruchstücke davon an. Im konkreten Fall ist der Payload im POST-Request ca 2700 Byte groß, davon werden nur 896 Byte gelesen. Es ist auch egal, was im Payload steht, auch mit simplem Text etc werden immer nur 896 Byte empfangen. Das sieht doch nach irgendeinem Buffer aus. Vielleicht hat ja jemand dieses Problem mit dem Espressif SDK schonmal gehabt oder weiss einen anderen Ansatz (chunked ?) Was ich bis jetzt getestet habe, alles brachte keine Veränderung: -buf als globale Variable buf[4096] definiert. Keine Veränderung. -Durch wiederholtes Aufrufen von httpd_req_recv(req, buf+n*800, 800) 800 Byte Chunks eingelesen. Gleiches Endergebnis -Im SDK mit make menuconfig mit diversen Buffern ( Task buffer, http request buffer) experimentiert und neu compiliert und geflashed. Keine Veränderung. Der folgende Code macht das Einlesen: esp_err_t cfgsav_post_handler(httpd_req_t *req) { ... char* buf; size_t buf_len; buf_len=req->content_len; tcpip_adapter_ip_info_t ip_info; tcpip_adapter_dns_info_t dns_info; cfg_err = 0; if(httpd_basic_auth(req, AUTHUSER, config.station_password) == ESP_OK) { if (buf_len > 1) { buf = malloc(buf_len); ret = httpd_req_recv(req, buf, buf_len); ... Der komplette Code - derzeit allerdings noch ohne Übertragung der Zertifikate - findet sich unter https://sourceforge.net/projects/wlan-controlled-switch/ Dort unter main/files/server.c Dieser Code dient zum Einlesen der über Webinterface erstellten Konfiguration. Die Zertifikate sind derzeit noch fest in der SW hinterlegt und diesen der Server-Validierung für OTA und MQTTs. Leider unterstützt httpd_req_recv den Typ multipart/form-data nicht, ansonsten könnte ich die Zertifikate per <input type=file> direkt aus einer Datei hochladen. Daher bin ich auf ein <textarea> Feld zum Einfügen der Zertifikate ausgewichen. Danke & gruß Tobi
Sorry der Titel ist misslungen. Kann ein MOD den Ändern auf: ESP8266 Espressif SDK: Problem beim Empfang großer Datensätze via http Danke
Das Problem hat sich erledigt. Aktuell habe ich wenig Zeit aber bei Interesse berichte ich gern später woran es lag.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.