forked from esp8266/Arduino
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add WiFiClient parameter to HTTPClient (esp8266#4980)
Make HTTPClient take a WiFiClient parameter, allowing you to pass in a simple HTTP WiFiClient or a BearSSL or axTLS WiFiClientSecure with any desired verification options. Deprecate the older, TLSTraits methods. Add basic HttpsClient example. Add optional LED feedback to the Update class
- Loading branch information
1 parent
9bc8ea1
commit 13f3746
Showing
18 changed files
with
761 additions
and
164 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,22 +12,22 @@ | |
|
||
#include <ESP8266HTTPClient.h> | ||
|
||
#define USE_SERIAL Serial | ||
#include <WiFiClient.h> | ||
|
||
ESP8266WiFiMulti WiFiMulti; | ||
|
||
void setup() { | ||
|
||
USE_SERIAL.begin(115200); | ||
// USE_SERIAL.setDebugOutput(true); | ||
Serial.begin(115200); | ||
// Serial.setDebugOutput(true); | ||
|
||
USE_SERIAL.println(); | ||
USE_SERIAL.println(); | ||
USE_SERIAL.println(); | ||
Serial.println(); | ||
Serial.println(); | ||
Serial.println(); | ||
|
||
for (uint8_t t = 4; t > 0; t--) { | ||
USE_SERIAL.printf("[SETUP] WAIT %d...\n", t); | ||
USE_SERIAL.flush(); | ||
Serial.printf("[SETUP] WAIT %d...\n", t); | ||
Serial.flush(); | ||
delay(1000); | ||
} | ||
|
||
|
@@ -40,46 +40,47 @@ void loop() { | |
// wait for WiFi connection | ||
if ((WiFiMulti.run() == WL_CONNECTED)) { | ||
|
||
WiFiClient client; | ||
|
||
HTTPClient http; | ||
|
||
USE_SERIAL.print("[HTTP] begin...\n"); | ||
Serial.print("[HTTP] begin...\n"); | ||
// configure traged server and url | ||
|
||
|
||
http.begin("http://user:[email protected]/test.html"); | ||
http.begin(client, "http://guest:[email protected]/HTTP/Basic/"); | ||
|
||
/* | ||
// or | ||
http.begin("http://192.168.1.12/test.html"); | ||
http.setAuthorization("user", "password"); | ||
http.begin(client, "http://jigsaw.w3.org/HTTP/Basic/"); | ||
http.setAuthorization("guest", "guest"); | ||
// or | ||
http.begin("http://192.168.1.12/test.html"); | ||
http.setAuthorization("dXNlcjpwYXN3b3Jk"); | ||
http.begin(client, "http://jigsaw.w3.org/HTTP/Basic/"); | ||
http.setAuthorization("Z3Vlc3Q6Z3Vlc3Q="); | ||
*/ | ||
|
||
|
||
USE_SERIAL.print("[HTTP] GET...\n"); | ||
Serial.print("[HTTP] GET...\n"); | ||
// start connection and send HTTP header | ||
int httpCode = http.GET(); | ||
|
||
// 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] GET... code: %d\n", httpCode); | ||
Serial.printf("[HTTP] GET... code: %d\n", httpCode); | ||
|
||
// file found at server | ||
if (httpCode == HTTP_CODE_OK) { | ||
String payload = http.getString(); | ||
USE_SERIAL.println(payload); | ||
Serial.println(payload); | ||
} | ||
} else { | ||
USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); | ||
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); | ||
} | ||
|
||
http.end(); | ||
} | ||
|
||
delay(10000); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
78 changes: 78 additions & 0 deletions
78
libraries/ESP8266HTTPClient/examples/BasicHttpsClient/BasicHttpsClient.ino
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/** | ||
BasicHTTPSClient.ino | ||
Created on: 20.08.2018 | ||
*/ | ||
|
||
#include <Arduino.h> | ||
|
||
#include <ESP8266WiFi.h> | ||
#include <ESP8266WiFiMulti.h> | ||
|
||
#include <ESP8266HTTPClient.h> | ||
|
||
#include <WiFiClientSecureBearSSL.h> | ||
// Fingerprint for demo URL, expires on June 2, 2019, needs to be updated well before this date | ||
const uint8_t fingerprint[20] = {0x5A, 0xCF, 0xFE, 0xF0, 0xF1, 0xA6, 0xF4, 0x5F, 0xD2, 0x11, 0x11, 0xC6, 0x1D, 0x2F, 0x0E, 0xBC, 0x39, 0x8D, 0x50, 0xE0}; | ||
|
||
ESP8266WiFiMulti WiFiMulti; | ||
|
||
void setup() { | ||
|
||
Serial.begin(115200); | ||
// Serial.setDebugOutput(true); | ||
|
||
Serial.println(); | ||
Serial.println(); | ||
Serial.println(); | ||
|
||
for (uint8_t t = 4; t > 0; t--) { | ||
Serial.printf("[SETUP] WAIT %d...\n", t); | ||
Serial.flush(); | ||
delay(1000); | ||
} | ||
|
||
WiFi.mode(WIFI_STA); | ||
WiFiMulti.addAP("SSID", "PASSWORD"); | ||
} | ||
|
||
void loop() { | ||
// wait for WiFi connection | ||
if ((WiFiMulti.run() == WL_CONNECTED)) { | ||
|
||
BearSSL::WiFiClientSecure client; | ||
client.setFingerprint(fingerprint); | ||
|
||
HTTPClient https; | ||
|
||
Serial.print("[HTTPS] begin...\n"); | ||
if (https.begin(client, "https://jigsaw.w3.org/HTTP/connection.html")) { // HTTPS | ||
|
||
|
||
Serial.print("[HTTPS] GET...\n"); | ||
// start connection and send HTTP header | ||
int httpCode = https.GET(); | ||
|
||
// httpCode will be negative on error | ||
if (httpCode > 0) { | ||
// HTTP header has been send and Server response header has been handled | ||
Serial.printf("[HTTPS] GET... code: %d\n", httpCode); | ||
|
||
// file found at server | ||
if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) { | ||
String payload = https.getString(); | ||
Serial.println(payload); | ||
} | ||
} else { | ||
Serial.printf("[HTTPS] GET... failed, error: %s\n", https.errorToString(httpCode).c_str()); | ||
} | ||
|
||
https.end(); | ||
} else { | ||
Serial.printf("[HTTPS] Unable to connect\n"); | ||
} | ||
} | ||
|
||
delay(10000); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.