Arduino - HTTPS Request
Arduino kan fungeren als webclient om HTTPS-aanvragen te doen naar een webserver. Een webserver kan een website, Web API of REST API, webservice zijn...
HTTP versus HTTPS
Vanuit het perspectief van een webclient zijn HTTPS en HTTP hetzelfde, met als verschil dat HTTPS de gegevens tussen client en server versleutelt. Dit maakt HTTPS veilig.
Daarom geldt: om HTTPS te leren begrijpen, hoeft u eerst HTTP te leren, en vervolgens hoe u data versleutelt.
Leer over HTTP
- Zie de tutorial Arduino - HTTP Request
Leer hoe u data versleutelt in HTTPS
Gelukkig is het eenvoudig om HTTP-code aan te passen naar HTTPS-code. Het vereist slechts het aanpassen van één regel code, afhankelijk van de board/shield. In de HTTP-code zoekt u de regels zoals aangegeven in onderstaande tabel en vervangt u deze door de bijbehorende HTTPS-code.
| Board/Shield | HTTP Code | HTTPS Code |
|---|---|---|
| Arduino UNO R4 WiFi | WiFiClient client; | WiFiSSLClient client; |
| Arduino UNO WIFI Rev2 | client.connect(server, 80) | client.connectSSL(server, 443) |
| ARDUINO NANO 33 IOT | client.connect(server, 80) | client.connectSSL(server, 443) |
| ARDUINO MKR WIFI 1010 | client.connect(server, 80) | client.connectSSL(server, 443) |
| ARDUINO MKR1000 WIFI | client.connect(server, 80) | client.connectSSL(server, 443) |
| Arduino MKR VIDOR 4000 WiFi | client.connect(server, 80) | client.connectSSL(server, 443) |
※ Notiz:
- Bij sommige board/shields, als de bibliotheek de WiFiSSLClient klasse ondersteunt, is er een extra mogelijkheid om HTTP-code om te zetten naar HTTPS-code. U hoeft dan alleen WiFiClient te vervangen door WiFiSSLClient en poort 80 te wijzigen in 443.
- Arduino Ethernet Shield ondersteunt geen HTTPS.
- In deze tutorial tonen we geen specifieke code. Dit komt doordat u simpelweg de HTTP-code uit Arduino - HTTP request haalt en deze vervolgens aanpast volgens bovenstaande instructies. Door HTTP-code te wijzigen kunt u HTTPS POST/GET aanroepen doen of gegevens verzenden via HTTPS POST/GET vanaf de Arduino naar een webserver.