Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add doc for ESP8266WebServer #5400

Merged
merged 7 commits into from
Dec 8, 2018
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 168 additions & 0 deletions libraries/ESP8266WebServer/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@

ESP8266 Web Server
==================

The WebServer class found in ``ESP8266WebServer.h`` header, is a simple web server that knows how to handle HTTP requests such as GET and POST and can only support one simultaneous client.

Usage
-----

Class Constructor
~~~~~~~~~~~~~~~~~

.. code:: cpp

ESP8266WebServer server(80);

Creates the ESP8266WebServer class object.

*Parameters:*

host IP address: ``IPaddress addr`` (optional)

host port number: ``int port`` (default is the standard HTTP port 80)

Basic Operations
~~~~~~~~~~~~~~~~

Starting the server
^^^^^^^^^^^^^^^^^^^

.. code:: cpp

void begin();

Handling incoming client requests
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: cpp

void handleClient();

Disabling the server
^^^^^^^^^^^^^^^^^^^^

.. code:: cpp

void close();
void stop();

Both methods function the same

Client request handlers
^^^^^^^^^^^^^^^^^^^^^^^

.. code:: cpp

void on();
void addHandler();
void onNotFound();
void onFileUpload();

*Example:*

.. code:: cpp

server.on("/", handlerFunction);
server.onNotFound(handlerFunction); // called when handler is not assigned
server.onFileUpload(handlerFunction); // handle file uploads

Sending responses to the client
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: cpp

void send();
void send_P();

*Parameters:*

``code`` - HTTP response code, can be ``200`` or ``404``, etc.

``content_type`` - HTTP content type, like ``"text/plain"`` or ``"image/png"``, etc.

``content`` - actual content body

Advanced Options
~~~~~~~~~~~~~~~~

Getting information about request arguments
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: cpp

const String & arg();
const String & argName();
int args();
bool hasArg();

``arg`` - get request argument value

``argName`` - get request argument name

``args`` - get arguments count

``hasArg`` - check if argument exist

Getting information about request headers
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: cpp

const String & header();
const String & headerName();
const String & hostHeader();
int headers();
bool hasHeader();


``header`` - get request header value

``headerName`` - get request header name

``hostHeader`` - get request host header if available, else empty string

``headers`` - get header count

``hasHeader`` - check if header exist

Authentication
^^^^^^^^^^^^^^

.. code:: cpp

bool authenticate();
void requestAuthentication();

``authenticate`` - server authentication, returns true if client is authenticated else false

``requestAuthentication`` - sends authentication failure response to the client

*Example Usage:*

.. code:: cpp

if(!server.authenticate(username, password)){
server.requestAuthentication();
}


Other Function Calls
~~~~~~~~~~~~~~~~~~~~

.. code:: cpp

const String & uri(); // get the current uri
HTTPMethod method(); // get the current method
WiFiClient client(); // get the current client
HTTPUpload & upload(); // get the current upload
void setContentLength(); // set content length
void sendHeader(); // send HTTP header
void sendContent(); // send content
void sendContent_P();
void collectHeaders(); // set the request headers to collect
void serveStatic();
size_t streamFile();

For code samples enter `here <https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer/examples>`__ .

9 changes: 9 additions & 0 deletions libraries/ESP8266WebServer/keywords.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,27 @@ HTTPMethod KEYWORD1
#######################################

begin KEYWORD2
close KEYWORD2
dav1901 marked this conversation as resolved.
Show resolved Hide resolved
stop KEYWORD2
handleClient KEYWORD2
on KEYWORD2
addHandler KEYWORD2
uri KEYWORD2
method KEYWORD2
client KEYWORD2
send KEYWORD2
send_P KEYWORD2
arg KEYWORD2
argName KEYWORD2
args KEYWORD2
hasArg KEYWORD2
onNotFound KEYWORD2
onFileUpload KEYWORD2
header KEYWORD2
headerName KEYWORD2
headers KEYWORD2
hasHeader KEYWORD2
hostHeader KEYWORD2

#######################################
# Constants (LITERAL1)
Expand Down