da4cb76f5a
Fixes issues where example tests for persistent_sockets and advanced_tests both loaded a module named "client", causing a race condition. |
||
---|---|---|
.. | ||
main | ||
scripts | ||
CMakeLists.txt | ||
http_server_simple_test.py | ||
Makefile | ||
README.md |
Simple HTTPD Server Example
The Example consists of HTTPD server demo with demostration of URI handling : 1. URI \hello for GET command returns "Hello World!" message 2. URI \echo for POST command echoes back the POSTed message
-
Open the project configuration menu (
idf.py menuconfig
) to configure Wi-Fi or Ethernet. See "Establishing Wi-Fi or Ethernet Connection" section in examples/protocols/README.md for more details. -
In order to test the HTTPD server persistent sockets demo :
- compile and burn the firmware
idf.py -p PORT flash
- run
idf.py -p PORT monitor
and note down the IP assigned to your ESP module. The default port is 80 - test the example :
- run the test script : "python2 scripts/client.py <IP> <port> <MSG>"
- the provided test script first does a GET \hello and displays the response
- the script does a POST to \echo with the user input <MSG> and displays the response
- or use curl (asssuming IP is 192.168.43.130):
- "curl 192.168.43.130:80/hello" - tests the GET "\hello" handler
- "curl -X POST --data-binary @anyfile 192.168.43.130:80/echo > tmpfile"
- "anyfile" is the file being sent as request body and "tmpfile" is where the body of the response is saved
- since the server echoes back the request body, the two files should be same, as can be confirmed using : "cmp anyfile tmpfile"
- "curl -X PUT -d "0" 192.168.43.130:80/ctrl" - disable /hello and /echo handlers
- "curl -X PUT -d "1" 192.168.43.130:80/ctrl" - enable /hello and /echo handlers
- run the test script : "python2 scripts/client.py <IP> <port> <MSG>"
- compile and burn the firmware
See the README.md file in the upper level 'examples' directory for more information about examples.