a

Dependencies:   mbed-http

Fork of http-example by sandbox

Committer:
kuwaeyoshi
Date:
Fri Aug 24 05:03:58 2018 +0000
Revision:
30:d4efad3e89f1
Parent:
26:22f87edb433c
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kuwaeyoshi 30:d4efad3e89f1 1
Jan Jongboom 0:85fdc69bc10c 2 # mbed-os-example-http(s)
Jan Jongboom 0:85fdc69bc10c 3
Jan Jongboom 0:85fdc69bc10c 4 This application demonstrates how to make HTTP and HTTPS requests and parse the response from mbed OS 5.
Jan Jongboom 0:85fdc69bc10c 5
Jan Jongboom 26:22f87edb433c 6 It consists of six demo's, which you can select in ``source/select-demo.h``.
Jan Jongboom 0:85fdc69bc10c 7
Jan Jongboom 11:72c089200302 8 * HTTP demo:
Jan Jongboom 4:27fd8efb5bab 9 * Does a GET request to http://httpbin.org/status/418.
Jan Jongboom 4:27fd8efb5bab 10 * Does a POST request to http://httpbin.org/post.
Jan Jongboom 11:72c089200302 11 * HTTPS demo:
Jan Jongboom 4:27fd8efb5bab 12 * Does a GET request to https://developer.mbed.org/media/uploads/mbed_official/hello.txt.
Jan Jongboom 4:27fd8efb5bab 13 * Does a POST request to https://httpbin.org/post.
Jan Jongboom 11:72c089200302 14 * HTTP demo with socket re-use.
Jan Jongboom 11:72c089200302 15 * HTTPS demo with socket re-use.
Jan Jongboom 25:a8be9f3a530c 16 * HTTP demo over IPv6.
Jan Jongboom 25:a8be9f3a530c 17 * HTTPS demo with chunked requests.
Jan Jongboom 0:85fdc69bc10c 18
Jan Jongboom 0:85fdc69bc10c 19 Response parsing is done through [nodejs/http-parser](https://github.com/nodejs/http-parser).
Jan Jongboom 0:85fdc69bc10c 20
Jan Jongboom 17:97b1dd566b07 21 **Note:** HTTPS requests do not work on targets with less than 128K of RAM due to the size of the TLS handshake. For more background see [mbed-http](https://developer.mbed.org/teams/sandbox/code/mbed-http).
Jan Jongboom 17:97b1dd566b07 22
Jan Jongboom 0:85fdc69bc10c 23 ## To build
Jan Jongboom 0:85fdc69bc10c 24
Jan Jongboom 0:85fdc69bc10c 25 1. Open ``mbed_app.json`` and change the `network-interface` option to your connectivity method ([more info](https://github.com/ARMmbed/easy-connect)).
Jan Jongboom 0:85fdc69bc10c 26 2. Build the project in the online compiler or using mbed CLI.
Jan Jongboom 0:85fdc69bc10c 27 3. Flash the project to your development board.
Jan Jongboom 0:85fdc69bc10c 28 4. Attach a serial monitor to your board to see the debug messages.
Jan Jongboom 0:85fdc69bc10c 29
Jan Jongboom 0:85fdc69bc10c 30 ## Entropy (or lack thereof)
Jan Jongboom 0:85fdc69bc10c 31
Jan Jongboom 17:97b1dd566b07 32 On all platforms **except** the FRDM-K64F, FRDM-K22F and EVK-ODIN-W2, the application is compiled without TLS entropy sources. This means that your code is inherently unsafe and should not be deployed to any production systems. To enable entropy, remove the `MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES` and `MBEDTLS_TEST_NULL_ENTROPY` macros from mbed_app.json.
Jan Jongboom 0:85fdc69bc10c 33
Jan Jongboom 19:fbf5b033149a 34 ## Flash size
Jan Jongboom 19:fbf5b033149a 35
Jan Jongboom 19:fbf5b033149a 36 Default flash size for HTTPS is very large, as the application is loading the default mbed TLS configuration. To use a more optimized version, include `mbedtls_config.h` in your mbed_app.json, by adding:
Jan Jongboom 19:fbf5b033149a 37
Jan Jongboom 19:fbf5b033149a 38 ```
Jan Jongboom 23:6a9d776c9794 39 "MBEDTLS_CONFIG_FILE=\"mbedtls_config.h\""
Jan Jongboom 19:fbf5b033149a 40 ```
Jan Jongboom 19:fbf5b033149a 41
Jan Jongboom 19:fbf5b033149a 42 to the `macros` array.
Jan Jongboom 19:fbf5b033149a 43
Jan Jongboom 0:85fdc69bc10c 44 ## Tested on
Jan Jongboom 0:85fdc69bc10c 45
Jan Jongboom 0:85fdc69bc10c 46 * K64F with Ethernet.
Jan Jongboom 0:85fdc69bc10c 47 * NUCLEO_F411RE with ESP8266.
Jan Jongboom 17:97b1dd566b07 48 * ODIN-W2 with WiFi.
Jan Jongboom 25:a8be9f3a530c 49 * K64F with Atmel 6LoWPAN shield.