Basic HTTP *client* module that provides an interface to do GET/POST/PUT/DELETE over HTTP(S), as well as customized requests. Due to the memory constraints on ESP8266, the supported page/body size is limited by available memory. Attempting to receive pages larger than this will fail. If larger page/body sizes are necessary, consider using [`net.createConnection()`](#netcreateconnection) and stream in the data.
Provides an interface to do basic GET/POST/PUT/DELETE over HTTP(S), as well as customized requests. Due to the memory constraints on ESP8266, the supported page/body size is limited by available memory. Attempting to receive pages larger than this will fail. If larger page/body sizes are necessary, consider using [`net.createConnection()`](#netcreateconnection) and stream in the data.
!!! note "Note:"
It is **not** possible to execute concurrent HTTP requests using this module. Starting a new request before the previous has completed will result in undefined behavior.
Each request method takes a callback which is invoked when the response has been received from the server. The first argument is the status code, which is either a regular HTTP status code, or -1 to denote a DNS, connection or out-of-memory failure, or a timeout (currently at 10 seconds).
Each request method takes a callback which is invoked when the response has been received from the server. The first argument is the status code, which is either a regular HTTP status code, or -1 to denote a DNS, connection or out-of-memory failure, or a timeout (currently at 10 seconds).
For each operation it is also possible to include custom headers. Note that following headers *can not* be overridden however:
For each operation it is also possible to include custom headers. Note that following headers *can not* be overridden however:
- Host
- Connection
- User-Agent
The `Host` header is taken from the URL itself, the `Connection` is always set to `close`, and the `User-Agent` is `ESP8266`.
- Host
- Connection
- User-Agent
Note that it is not possible to execute concurrent HTTP requests using this module. Starting a new request before the previous has completed will result in undefined behavior.
The `Host` header is taken from the URL itself, the `Connection` is always set to `close`, and the `User-Agent` is `ESP8266`.
## http.delete()
## http.delete()
Executes a HTTP DELETE request.
Executes a HTTP DELETE request. Note that concurrent requests are not supported.
#### Syntax
#### Syntax
`http.delete(url, headers, body, callback)`
`http.delete(url, headers, body, callback)`
#### Parameters
#### Parameters
-`url` The URL to fetch, including the `http://` or `https://` prefix
-`url` The URL to fetch, including the `http://` or `https://` prefix
-`headers` Optional additional headers to append, *including \r\n*; may be `nil`
-`headers` Optional additional headers to append, *including \r\n*; may be `nil`
-`body` The body to post; must already be encoded in the appropriate format, but may be empty
-`body` The body to post; must already be encoded in the appropriate format, but may be empty
-`callback` The callback function to be invoked when the response has been received; it is invoked with the arguments `status_code` and `body`
-`callback` The callback function to be invoked when the response has been received; it is invoked with the arguments `status_code` and `body`