Skocz do zawartości

ESP8266 Problem z zapisem payload HTTP Post.


B3ginner

Pomocna odpowiedź

Cześć, mam problem z zapisaniem odpowiedzi serwera po tym jak wysyłam mu HTTP POST biblioteka wbudowana HTTPClient. Payload jest zbyt ciężki/długi żeby przechwycić go w ten sposób:
 

String payload = http.getString();

Zmienna payload po tym jest pusta, próbowałem z http.writeToStream i zapis bezpośrednio na kartę pamięci, ale tutaj jest różnie najczęściej zapisuje się ok. 1/3 całości raz na jakiś czas pobierze całość.
Ogólnie cały payload docelowo chcę zapisać na karcie pamięci w pliku .txt i dalej go obrabiać, ale jestem w kropce nie potrafię tego zapisać.
W ten sposób nie działa to tak jak powinno.

if (httpResponseCode == 200) {
myFile = SD.open("example.txt", FILE_WRITE);
if (myFile) {
Serial.println("Zapis do karty");
myFile.println("TEST");
http.writeToStream(&myFile);
myFile.close();
Serial.println("Koniec");

W jaki sposób mogę zapisać payload który zajmuje 6,74 KB, ma 150 linii i 6593 znaków ?

  • Lubię! 1
Link do komentarza
Share on other sites

(edytowany)

czy udało Ci się jakoś ten temat rowikłać bo mam taki sam problem i nie mam zielonego pojęcia jak sobie z nim poradzić?

Edytowano przez merinum
Link do komentarza
Share on other sites

Taką mam funkcję do obsługi uploadu plików do esp przez www.

Co prawda do littlefs, ale chodzi o mechanizm:

void handleFileUpload()
{
	HTTPUpload& upload = web_server.upload();

	if (!upload.filename.length()) return;

	String filename;

	if (upload.status == UPLOAD_FILE_START)
	{
		if (!filename.startsWith("/")) filename = "/" + filename;

		MEMFFS_file = LittleFS.open(filename, "w");
	}
	else if (upload.status == UPLOAD_FILE_WRITE) MEMFFS_file.write(upload.buf, upload.currentSize);
	else if (upload.status == UPLOAD_FILE_END) MEMFFS_file.close();
}

No i trzeba dodać klauzulę przed wystartowaniem serwera:

void startWebServer()
{
    web_server.onFileUpload(handleFileUpload);

...

 

 

Bez problemu zapisują się pliki po kilkaset kB.

  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.