-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Feature/http client wi fi client parameter #4979
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
ff2858a
f9ae2c4
d0d7466
96636f2
5aff343
d4db72d
2807373
815fb0f
2047402
5ff9728
11ea32a
cfd977c
dc20696
29e7754
fba638c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,6 +12,8 @@ | |
|
|
||
| #include <ESP8266HTTPClient.h> | ||
|
|
||
| #include <WiFiClient.h> | ||
|
|
||
| #define USE_SERIAL Serial | ||
|
|
||
| ESP8266WiFiMulti WiFiMulti; | ||
|
|
@@ -40,22 +42,24 @@ void loop() { | |
| // wait for WiFi connection | ||
| if ((WiFiMulti.run() == WL_CONNECTED)) { | ||
|
|
||
| WiFiClient client; | ||
|
|
||
| HTTPClient http; | ||
|
|
||
| USE_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="); | ||
| */ | ||
|
|
||
|
|
||
|
|
@@ -82,4 +86,3 @@ void loop() { | |
|
|
||
| delay(10000); | ||
| } | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,6 +12,8 @@ | |
|
|
||
| #include <ESP8266HTTPClient.h> | ||
|
|
||
| #include <WiFiClient.h> | ||
|
|
||
| #define USE_SERIAL Serial | ||
|
|
||
| ESP8266WiFiMulti WiFiMulti; | ||
|
|
@@ -40,34 +42,39 @@ void loop() { | |
| // wait for WiFi connection | ||
| if ((WiFiMulti.run() == WL_CONNECTED)) { | ||
|
|
||
| WiFiClient client; | ||
|
|
||
| HTTPClient http; | ||
|
|
||
| USE_SERIAL.print("[HTTP] begin...\n"); | ||
| // configure traged server and url | ||
| //http.begin("https://192.168.1.12/test.html", "7a 9c f4 db 40 d3 62 5a 6e 21 bc 5c cc 66 c8 3e a1 45 59 38"); //HTTPS | ||
|
||
| http.begin("http://192.168.1.12/test.html"); //HTTP | ||
| if (http.begin(client, "http://jigsaw.w3.org/HTTP/connection.html")) { // HTTP | ||
|
|
||
|
|
||
| USE_SERIAL.print("[HTTP] GET...\n"); | ||
| // start connection and send HTTP header | ||
| int httpCode = http.GET(); | ||
| USE_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); | ||
| // 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); | ||
|
|
||
| // file found at server | ||
| if (httpCode == HTTP_CODE_OK) { | ||
| String payload = http.getString(); | ||
| USE_SERIAL.println(payload); | ||
| // file found at server | ||
| if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) { | ||
| String payload = http.getString(); | ||
| USE_SERIAL.println(payload); | ||
| } | ||
| } else { | ||
| USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); | ||
| } | ||
|
|
||
| http.end(); | ||
| } else { | ||
| USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); | ||
| USE_SERIAL.printf("Unable to connect\n"); | ||
|
||
| } | ||
|
|
||
| http.end(); | ||
| } | ||
|
|
||
| delay(10000); | ||
| } | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -45,8 +45,10 @@ void loop() { | |
| // wait for WiFi connection | ||
| if ((WiFiMulti.run() == WL_CONNECTED)) { | ||
|
|
||
| http.begin("http://192.168.1.12/test.html"); | ||
| //http.begin("192.168.1.12", 80, "/test.html"); | ||
| WiFiClient client; | ||
|
|
||
| http.begin(client, "http://192.168.1.12/test.html"); | ||
|
||
| //http.begin(client, "192.168.1.12", 80, "/test.html"); | ||
|
|
||
| int httpCode = http.GET(); | ||
| if (httpCode > 0) { | ||
|
|
@@ -65,6 +67,3 @@ void loop() { | |
|
|
||
| delay(1000); | ||
| } | ||
|
|
||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,116 @@ | ||
| /** | ||
| StreamHTTPClient.ino | ||
| Created on: 24.05.2015 | ||
| */ | ||
|
|
||
| #include <Arduino.h> | ||
|
|
||
| #include <ESP8266WiFi.h> | ||
| #include <ESP8266WiFiMulti.h> | ||
|
|
||
| #include <ESP8266HTTPClient.h> | ||
|
|
||
| #define USE_SERIAL Serial | ||
|
|
||
| ESP8266WiFiMulti WiFiMulti; | ||
|
|
||
| void setup() { | ||
|
|
||
| USE_SERIAL.begin(115200); | ||
|
||
| // USE_SERIAL.setDebugOutput(true); | ||
|
|
||
| USE_SERIAL.println(); | ||
| USE_SERIAL.println(); | ||
| USE_SERIAL.println(); | ||
|
|
||
| for (uint8_t t = 4; t > 0; t--) { | ||
| USE_SERIAL.printf("[SETUP] WAIT %d...\n", t); | ||
| USE_SERIAL.flush(); | ||
| delay(1000); | ||
| } | ||
|
|
||
| WiFi.mode(WIFI_STA); | ||
| WiFiMulti.addAP("SSID", "PASSWORD"); | ||
|
|
||
| } | ||
|
|
||
| void loop() { | ||
| // wait for WiFi connection | ||
| if ((WiFiMulti.run() == WL_CONNECTED)) { | ||
|
|
||
| HTTPClient http; | ||
|
|
||
| BearSSL::WiFiClientSecure client; | ||
|
||
|
|
||
| bool mfln = client.probeMaxFragmentLength("tls.mbed.org", 443, 1024); | ||
| USE_SERIAL.printf("\nConnecting to https://tls.mbed.org\n"); | ||
| USE_SERIAL.printf("MFLN supported: %s\n", mfln ? "yes" : "no"); | ||
|
||
| if (mfln) { | ||
| client.setBufferSizes(1024, 1024); | ||
| } | ||
|
|
||
| USE_SERIAL.print("[HTTP] begin...\n"); | ||
|
|
||
| // configure server and url | ||
| const uint8_t fingerprint[20] = {0xEB, 0xD9, 0xDF, 0x37, 0xC2, 0xCC, 0x84, 0x89, 0x00, 0xA0, 0x58, 0x52, 0x24, 0x04, 0xE4, 0x37, 0x3E, 0x2B, 0xF1, 0x41}; | ||
| client.setFingerprint(fingerprint); | ||
|
|
||
| //if (http.begin(client, "jigsaw.w3.org", 443, "/HTTP/connection.html", true)) { | ||
| if (http.begin(client, "https://tls.mbed.org/")) { | ||
|
|
||
| USE_SERIAL.print("[HTTP] GET...\n"); | ||
| // start connection and send HTTP header | ||
| int httpCode = http.GET(); | ||
| if (httpCode > 0) { | ||
| // HTTP header has been send and Server response header has been handled | ||
| USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode); | ||
|
|
||
| // file found at server | ||
| if (httpCode == HTTP_CODE_OK) { | ||
|
|
||
| // get lenght of document (is -1 when Server sends no Content-Length header) | ||
| int len = http.getSize(); | ||
|
|
||
| // create buffer for read | ||
| uint8_t buff[128] = { 0 }; | ||
|
||
|
|
||
| // get tcp stream | ||
| WiFiClient * stream = &client; | ||
|
|
||
| // read all data from server | ||
| while (http.connected() && (len > 0 || len == -1)) { | ||
| // get available data size | ||
| size_t size = stream->available(); | ||
|
|
||
| if (size) { | ||
| // read up to 128 byte | ||
| int c = stream->readBytes(buff, ((size > sizeof(buff)) ? sizeof(buff) : size)); | ||
|
|
||
| // write it to Serial | ||
| USE_SERIAL.write(buff, c); | ||
|
|
||
| if (len > 0) { | ||
| len -= c; | ||
| } | ||
| } | ||
| delay(1); | ||
| } | ||
|
|
||
| USE_SERIAL.println(); | ||
| USE_SERIAL.print("[HTTP] connection closed or file end.\n"); | ||
|
|
||
| } | ||
| } else { | ||
| USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str()); | ||
| } | ||
|
|
||
| http.end(); | ||
| } else { | ||
| USE_SERIAL.printf("Unable to connect\n"); | ||
| } | ||
| } | ||
|
|
||
| delay(10000); | ||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice test, moving it to a public web service!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:)