Forum: Mikrocontroller und Digitale Elektronik Mit ESP eine HTTPS-Seite aufrufen


von Matthias G. (matthias1102)


Lesenswert?

Hallo zusammen!
Brauche Hilfe, na klar, was sonst.
Meine Absicht/Szenario:
Waschmaschine im Keller an Tasmota-Steckdose / Tasmota: MQTT enabled / 
ESP als MQTT-Broker / ESP wertet MQTT aus. / ESP ermittelt ob 
Waschmaschine fertig ist. / Wenn ja, dann Aufruf von
www.getnotify.me
Alexa soll nun eine Benachrichtigung erhalten und "Waschmaschine fertig"
von sich geben.
Und hier liegt mein Hund begraben. Der HTTPS-Aufruf von getnotify.me mit 
den erforderlichen Parametern. Bei getnotify.me sind (unter DEVELOPER) 
die Keys angegeben und es wird angezeigt was übermittelt werden muss. 
Zitat:

You have API credentials. API details:
Endpoint: https://api.getnotify.me/submit
Authentication: Basic (username = API key, password = API secret)
Format: json
Body: {"message":"your message here"}

Ich scheitere an dem Aufruf mit den notwendigen Parametern. Ich mach 
schon eine Woche damit rum. Aber bevor ich aufgebe versuche ich es hier 
und bekomme vielleicht Hilfe von Leuten die sich mit HTTPS-Aufrufen 
auskennen.
Ich habe einfach zu wenig Ahnung davon, hatte auch nie mit Webseiten zu 
tun. Tue mir schon mit C++ schwer, habe bis vor einigen Jahren intensiv 
Mikrocontroller mit C programmiert, aber das ist kaum mit C++ 
vergleichbar. Langer Rede kurzer Sinn: Wäre für Hilfe beim HTTPS-Aufruf 
wirklich dankbar.
Danke
Matthias

PS: Wie erzwinge ich Zeilenumbrüche - die sind manchmal nützlich...

von Alexander (alecxs)


Lesenswert?


: Bearbeitet durch User
von Nemopuk (nemopuk)


Lesenswert?

Für die Authentication musst du einen Header senden, der so aussieht:

> Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Das ist "username:passwort" codiert als base64

Für das Format musst wahrscheinlich einen Header senden, der so 
aussieht:

> Content-type: application/json; charset=utf-8

Oder eventuell

> Content-type: application/json

Du musst wohl noch klären, welche HTTP Methode benutzt werden soll. 
Vermutlich POST. Dann lautet die erste Zeile des HTTP Requests:

> POST /submit

Das alles hat mit HTTPS noch nichts zu tun. Kannst du das nicht erst mal 
ohne "S" testen?

Als Tools zum Ausprobieren empfehle ich das Programm "curl". Dazu gibt 
es im Web zahlreiche Beispiele. Vermutlich geht es so:
1
curl --verbose --request POST --user xxxxx:yyyyy --header "Content-Type: application/json" --data '{"message":"Hello world!"}'  https://api.getnotify.me/submit

Anstelle von xxxxx:yyyyy musst du deinen Username und Passwort angeben.

Ich bekomme dann eine leere Antwort mit dem Header
> x-amzn-errortype: UnauthorizedException

weil ich keinen Account auf der Plattform habe.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.