mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-31 14:11:42 +01:00 
			
		
		
		
	
		
			
	
	
		
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Arduino
		
	
	
	
	
	
		
		
			
		
	
	
			91 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Arduino
		
	
	
	
	
	
|   | /*
 | ||
|  |  *  HTTP over TLS (HTTPS) example sketch | ||
|  |  * | ||
|  |  *  This example demonstrates how to use | ||
|  |  *  WiFiClientSecure class to access HTTPS API. | ||
|  |  *  We fetch and display the status of | ||
|  |  *  esp8266/Arduino project continuous integration | ||
|  |  *  build. | ||
|  |  * | ||
|  |  *  Created by Ivan Grokhotkov, 2015. | ||
|  |  *  This example is in public domain. | ||
|  |  */ | ||
|  | 
 | ||
|  | #include <WiFi.h>
 | ||
|  | #include <WiFiClientSecure.h>
 | ||
|  | 
 | ||
|  | const char* ssid = "........"; | ||
|  | const char* password = "........"; | ||
|  | 
 | ||
|  | const char* host = "api.github.com"; | ||
|  | const int httpsPort = 443; | ||
|  | 
 | ||
|  | // Use web browser to view and copy
 | ||
|  | // SHA1 fingerprint of the certificate
 | ||
|  | const char* fingerprint = "CF 05 98 89 CA FF 8E D8 5E 5C E0 C2 E4 F7 E6 C3 C7 50 DD 5C"; | ||
|  | 
 | ||
|  | void setup() | ||
|  | { | ||
|  |     Serial.begin(115200); | ||
|  |     Serial.println(); | ||
|  |     Serial.print("connecting to "); | ||
|  |     Serial.println(ssid); | ||
|  |     WiFi.begin(ssid, password); | ||
|  |     while (WiFi.status() != WL_CONNECTED) { | ||
|  |         delay(500); | ||
|  |         Serial.print("."); | ||
|  |     } | ||
|  |     Serial.println(""); | ||
|  |     Serial.println("WiFi connected"); | ||
|  |     Serial.println("IP address: "); | ||
|  |     Serial.println(WiFi.localIP()); | ||
|  | 
 | ||
|  |     // Use WiFiClientSecure class to create TLS connection
 | ||
|  |     WiFiClientSecure client; | ||
|  |     Serial.print("connecting to "); | ||
|  |     Serial.println(host); | ||
|  |     if (!client.connect(host, httpsPort)) { | ||
|  |         Serial.println("connection failed"); | ||
|  |         return; | ||
|  |     } | ||
|  | 
 | ||
|  |     if (client.verify(fingerprint, host)) { | ||
|  |         Serial.println("certificate matches"); | ||
|  |     } else { | ||
|  |         Serial.println("certificate doesn't match"); | ||
|  |     } | ||
|  | 
 | ||
|  |     String url = "/repos/esp8266/Arduino/commits/master/status"; | ||
|  |     Serial.print("requesting URL: "); | ||
|  |     Serial.println(url); | ||
|  | 
 | ||
|  |     client.print(String("GET ") + url + " HTTP/1.1\r\n" + | ||
|  |                  "Host: " + host + "\r\n" + | ||
|  |                  "User-Agent: BuildFailureDetectorESP8266\r\n" + | ||
|  |                  "Connection: close\r\n\r\n"); | ||
|  | 
 | ||
|  |     Serial.println("request sent"); | ||
|  |     while (client.connected()) { | ||
|  |         String line = client.readStringUntil('\n'); | ||
|  |         if (line == "\r") { | ||
|  |             Serial.println("headers received"); | ||
|  |             break; | ||
|  |         } | ||
|  |     } | ||
|  |     String line = client.readStringUntil('\n'); | ||
|  |     if (line.startsWith("{\"state\":\"success\"")) { | ||
|  |         Serial.println("esp8266/Arduino CI successfull!"); | ||
|  |     } else { | ||
|  |         Serial.println("esp8266/Arduino CI has failed"); | ||
|  |     } | ||
|  |     Serial.println("reply was:"); | ||
|  |     Serial.println("=========="); | ||
|  |     Serial.println(line); | ||
|  |     Serial.println("=========="); | ||
|  |     Serial.println("closing connection"); | ||
|  | } | ||
|  | 
 | ||
|  | void loop() | ||
|  | { | ||
|  | } |