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

ESP8266 + Serwer w sieci lokalnej = 400 Bad request

06 Mar 2017 05:49 2421 2
  • Poziom 9  
    Korzystam z modułu ESP8266 z aktualnym firmware ESP8266_NONOS_SDK_V2.0.0_16_08_10.
    Wykonuję zapytania GET za pomocą komend AT do serwerów PHP+MySQL.

    Serwery internetowe - ESP8266 działa prawidłowo
    Tutaj wszystko działa ok.

    Niezależnie czy wywołam w przeglądarce url: http://zzzzzzz.zzzzzzzzz.zz/dodaj_rek.php?n=129&u=1488723073&d=-51&s=203
    czy też komandami AT w module ESP8266:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    serwer prawidłowo odpowiada:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    a dane lądują w bazie na serwerze gdzieś tam w Polsce.


    Serwer w sieci lokalnej - ESP8266 problem

    Zainstalowałem serwer Apache + MySQL + PHP na komputerze o adresie IP 192.168.1.51 nasłuchujący na porcie 80.

    Wpisanie w przeglądarkę adresu 192.168.1.51 prawidłowo uruchamia skrypt index.php.

    Wywołanie w przeglądarce adresów url:
    http://192.168.1.51/dodaj_rek.php?n=129&u=1488723073&d=-51&s=203
    lub
    192.168.1.51/dodaj_rek.php?n=129&u=1488723073&d=-51&s=203
    prawidłowo uruchamia skrypt php i dodaje rekord do bazy.

    Serwer jest widziany przez inne komputery, tablety, czy smartfony w sieci przez co użycie w przeglądarce powyższych url prawidłowo działa niezależnie, czy dane urządzenie jest podłączone za pomocą LAN czy WiFi.


    Problem pojawia się, gdy to samo chcę wykonać za pomocą ESP8266 wskazując adres IP serwera w sieci lokalnej:

    Kod: bash
    Zaloguj się, aby zobaczyć kod

    CIPSTART odpowiada, prawidłowym połączeniem z serwerem
    CIPSSEND także prawidłowo odpowiada znakiem zachęty > a ESP8266 czeka na przesłanie GET.

    Po przesłaniu GET prawidłowo informuje o odebraniu właściwej ilości (81) bajtów:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    ale generuje błąd 400 Bad Request:
    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Załączam pliki konfiguracyjne Apache i PHP.

    Spędziłem nad tym wiele godzin, szukałem informacji w sieci, ale nie znalazłem nic co rozwiązałoby problem lub chociaż podało przyczynę.

    Próbowałem nawet podawać w GET dodatkowo numer portu wysyłając 84 znaki:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    ale efekt ten sam - połączenie ok, potwierdzenie odebrania prawidłowej ilości bajtów GET także ok, ale niestety znowu błąd 400 Bad Request.
  • Poziom 19  
    Spróbuj zamiast "dodaj_rek.php" wstawić "/dodaj_rek.php" czyli dodać slash:
    GET /dodaj_rek.php ....
    Jeśli nie pomoże zamień HTTP z 1.1 na 1.0