Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Microchip TCP IP - Jak wysyłać dane za pomocą POST

figa_miga 21 Sie 2015 11:59 1902 6
  • #1 21 Sie 2015 11:59
    figa_miga
    Poziom 19  

    Naprowadzi ktoś na temat prawidłowego użycia POST w ich stosie?. Wszystko co znajduje tyczy się php a tutaj odbywa się to chyba innymi sposobami?.

    GET mi działa, otwieram socket, wysyłam:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 6
  • #2 24 Sie 2015 11:32
    Marico
    Poziom 19  

    Skonfigurowałeś stos (i server http będący częścią ich stosu) tak aby supportował POST?
    Hint: #define HTTP_USE_POST w pliku TCPIPConfig.h lub przy użyciu narzędzi do konfiguracji parametrów stosu.
    POST się wysyła tak jak zwykły post, ale pamietaj o limitach zdefiniowanych w http2.c dotyczących rozmiaru przesyłanych danych np. HTTP_MAX_DATA_LEN 100.
    Proponuję zapoznać się ze źródłami http2.c, jest tam sporo użytecznego komentarza.

    0
  • #3 24 Sie 2015 11:36
    figa_miga
    Poziom 19  

    Mam to zdefiniowane, ale w sumie nie widze aby ten stos jakoś budował nagłówek i liczył np content lenght. Z tego co przez łikend posiedziałem to po prostu trzeba to wszystko złożyć samemu i posłać flush'em.

    Dziś do tego znów usiąde.

    0
  • #4 24 Sie 2015 11:40
    Marico
    Poziom 19  

    Nie stos buduje nagłówek ale klient http, który sam musisz napisać, stos zawiera tylko serwer http.

    0
  • #5 24 Sie 2015 16:48
    figa_miga
    Poziom 19  

    Ok, zaczyna działać. Serwer oddaje mi poprawną stronę z przesłanym formularzem. Jednak raz na kilkanaście przesłanych POSTów widzę w wiresharku coś czego nie mogę rozkminić:

    Cytat:
    29649 3328.199584000 93.174.29.XXX 10.10.6.25 TCP 60 [TCP Dup ACK 29648#1] 80→2149 [ACK] Seq=1 Ack=295 Win=15544 Len=0


    Czy znaki \r i \n w przesyłanym formularzu mają być zliczane do content-length?, końcowe connection close też?

    0
  • #6 24 Sie 2015 17:00
    Marico
    Poziom 19  

    Błąd jest w 31 linijce kodu. Nie widzę związku między \r\n, connection-close a zawartością body post, który powinien mieć taki rozmiar jaki deklarujesz w content-length. Poczytaj najpierw rfc dot. http, bo piszesz kod na czuja, bez elementarnej wiedzy o protokole http.

    0
  • #7 24 Sie 2015 17:08
    figa_miga
    Poziom 19  

    Spokojnie, przeczytałem kilka rzeczy, teraz czytam jeszcze raz i od razu pisze.

    0