From f1297e44de08c2052ca6f0a952c0f219f26681f6 Mon Sep 17 00:00:00 2001 From: agdl Date: Thu, 12 Jan 2017 15:38:25 +0100 Subject: [PATCH 1/2] Added Custom Header Example Added the example posted in #12 to close the PR. Tested and it works --- examples/CustomHeader/CustomHeader.ino | 91 ++++++++++++++++++++++++++ examples/CustomHeader/config.h | 3 + 2 files changed, 94 insertions(+) create mode 100644 examples/CustomHeader/CustomHeader.ino create mode 100644 examples/CustomHeader/config.h diff --git a/examples/CustomHeader/CustomHeader.ino b/examples/CustomHeader/CustomHeader.ino new file mode 100644 index 0000000..4771226 --- /dev/null +++ b/examples/CustomHeader/CustomHeader.ino @@ -0,0 +1,91 @@ +/* + Custom request header example for the ArduinoHttpClient + library. This example sends a GET request with a custom header every 5 seconds. + + note: WiFi SSID and password are stored in config.h file. + If it is not present, add a new tab, call it "config.h" + and add the following variables: + char ssid[] = "ssid"; // your network SSID (name) + char pass[] = "password"; // your network password + + based on SimpleGet example by Tom Igoe + header modifications by Todd Treece + + this example is in the public domain + */ + +#include +#include +#include "config.h" + +char serverAddress[] = "192.168.0.3"; // server address +int port = 8080; + +WiFiClient wifi; +HttpClient client = HttpClient(wifi, serverAddress, port); +int status = WL_IDLE_STATUS; +String response; +int statusCode = 0; + +void setup() { + Serial.begin(9600); + while ( status != WL_CONNECTED) { + Serial.print("Attempting to connect to Network named: "); + Serial.println(ssid); // print the network name (SSID); + + // Connect to WPA/WPA2 network: + status = WiFi.begin(ssid, pass); + } + + // print the SSID of the network you're attached to: + Serial.print("SSID: "); + Serial.println(WiFi.SSID()); + + // print your WiFi shield's IP address: + IPAddress ip = WiFi.localIP(); + Serial.print("IP Address: "); + Serial.println(ip); +} + +void loop() { + + Serial.println("making GET request"); + client.beginRequest(); + client.get("/"); + client.sendHeader("X-CUSTOM-HEADER", "custom_value"); + client.endRequest(); + + // read the status code and body of the response + statusCode = client.responseStatusCode(); + response = client.responseBody(); + + Serial.print("GET Status code: "); + Serial.println(statusCode); + Serial.print("GET Response: "); + Serial.println(response); + + Serial.println("Wait five seconds"); + delay(5000); + + Serial.println("making POST request"); + String postData = "name=Alice&age=12"; + client.beginRequest(); + client.post("/"); + client.sendHeader(HTTP_HEADER_CONTENT_TYPE, "application/x-www-form-urlencoded"); + client.sendHeader(HTTP_HEADER_CONTENT_LENGTH, postData.length()); + client.sendHeader("X-CUSTOM-HEADER", "custom_value"); + client.endRequest(); + client.write((const byte*)postData.c_str(), postData.length()); + + // read the status code and body of the response + statusCode = client.responseStatusCode(); + response = client.responseBody(); + + Serial.print("POST Status code: "); + Serial.println(statusCode); + Serial.print("POST Response: "); + Serial.println(response); + + Serial.println("Wait five seconds"); + delay(5000); +} diff --git a/examples/CustomHeader/config.h b/examples/CustomHeader/config.h new file mode 100644 index 0000000..7765359 --- /dev/null +++ b/examples/CustomHeader/config.h @@ -0,0 +1,3 @@ +char ssid[] = "ssid"; // your network SSID (name) +char pass[] = "password"; // your network password + From bd95714f541481576979bd1bf5d4c5f21ee58a7f Mon Sep 17 00:00:00 2001 From: agdl Date: Thu, 12 Jan 2017 15:54:45 +0100 Subject: [PATCH 2/2] Fixed comment --- examples/CustomHeader/CustomHeader.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/CustomHeader/CustomHeader.ino b/examples/CustomHeader/CustomHeader.ino index 4771226..898c97b 100644 --- a/examples/CustomHeader/CustomHeader.ino +++ b/examples/CustomHeader/CustomHeader.ino @@ -1,6 +1,6 @@ /* Custom request header example for the ArduinoHttpClient - library. This example sends a GET request with a custom header every 5 seconds. + library. This example sends a GET and a POST request with a custom header every 5 seconds. note: WiFi SSID and password are stored in config.h file. If it is not present, add a new tab, call it "config.h"