diff --git a/libraries/ESP8266HTTPClient/examples/PostHttpClient/PostHttpClient.ino b/libraries/ESP8266HTTPClient/examples/PostHttpClient/PostHttpClient.ino new file mode 100644 index 0000000000..94d57bdbf4 --- /dev/null +++ b/libraries/ESP8266HTTPClient/examples/PostHttpClient/PostHttpClient.ino @@ -0,0 +1,84 @@ +/** + PostHTTPClient.ino + + Created on: 21.11.2016 + +*/ + +#include +#include + +#define USE_SERIAL Serial + +/* this can be run with an emulated server on host: + cd esp8266-core-root-dir + cd tests/host + make ../../libraries/ESP8266WebServer/examples/PostServer/PostServer + bin/PostServer/PostServer + then put your PC's IP address in SERVER_IP below, port 9080 (instead of default 80): +*/ +//#define SERVER_IP "10.0.1.7:9080" // PC address with emulation on host +#define SERVER_IP "192.168.1.42" + +#ifndef STASSID +#define STASSID "your-ssid" +#define STAPSK "your-password" +#endif + +void setup() { + + USE_SERIAL.begin(115200); + + USE_SERIAL.println(); + USE_SERIAL.println(); + USE_SERIAL.println(); + + WiFi.begin(STASSID, STAPSK); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + USE_SERIAL.print("."); + } + USE_SERIAL.println(""); + USE_SERIAL.print("Connected! IP address: "); + USE_SERIAL.println(WiFi.localIP()); + +} + +void loop() { + // wait for WiFi connection + if ((WiFi.status() == WL_CONNECTED)) { + + WiFiClient client; + HTTPClient http; + + USE_SERIAL.print("[HTTP] begin...\n"); + // configure traged server and url + http.begin(client, "http://" SERVER_IP "/postplain/"); //HTTP + http.addHeader("Content-Type", "application/json"); + + USE_SERIAL.print("[HTTP] POST...\n"); + // start connection and send HTTP header and body + int httpCode = http.POST("{\"hello\":\"world\"}"); + + // httpCode will be negative on error + if (httpCode > 0) { + // HTTP header has been send and Server response header has been handled + USE_SERIAL.printf("[HTTP] POST... code: %d\n", httpCode); + + // file found at server + if (httpCode == HTTP_CODE_OK) { + const String& payload = http.getString(); + USE_SERIAL.println("received payload:\n<<"); + USE_SERIAL.println(payload); + USE_SERIAL.println(">>"); + } + } else { + USE_SERIAL.printf("[HTTP] POST... failed, error: %s\n", http.errorToString(httpCode).c_str()); + } + + http.end(); + } + + delay(10000); +}