smarthome-tricks.de

Blockly – URL encode mit Blockly

In dieser Artikelserie möchte ich das Thema Blockly in ioBroker näher erklären. Im Artikel zeige ich, wie Du Parameter eines Web-Request entsprechend kodieren kannst.

Über den Block Request lassen über Blockly Scripts Web-Requests ausführen. Hierbei müssen Sonderzeichen wie z.B. Leerzeichen, Umlaute oder andere Zeichen wie (?,&,=) entsprechend kodiert werden. Beim Kodieren werden die zu kodierenden Zeichen mit den entsprechenden Escape-Zeichen des UTF-8 Zeichensatzes ersetzt. In JavaScript wird hierzu einfach der String an die Funktion „encodeURIComponent“ übergeben. Die Funktion gibt dann den kodierten String wieder zurück.

In Blockly gibt es dafür keinen Block, wir müssen hier also den Weg über JavaScript gehen. Im ersten Schritt fügen wir nun eine JS-Funktion mit Ergebnis in das Blockly-Script ein.

 

Im Feld „etwas tun“ können wir nun den Namen der Funktion definieren. Dazu habe ich den Namen „encodeURI“ gewählt.

Nach dem wir die Funktion eingefügt haben, klicken wir nun auf die Konfigurationsschaltfläche und fügen der Funktionen einen Parameter hinzu. Dazu einfach die Variable „x“ in die Liste der Parameter ziehen und den Namen von „x“ auf „url“ ändern. Mit einem erneuten Klick auf die Konfigurationsschaltfläche wird die Konfiguration der Parameter beendet.

 

Im nächsten Schritt fügen wir den JavaScript ein, mit dem die Kodierung der Zeichenkette durchgeführt wird. Klicke dazu auf die Schaltfläche um den JavaScropt Code zu definieren.

 

Im Editor kannst Du jetzt den folgenden Code einfügen.

 

Das fertige Script sieht nun folgendermaßen aus. Bei einer Änderung des Trigger-Datenpunkts wird die Variable „TestUrl“ auf die entsprechende Url gesetzt. Dabei wird der Parameter über die erstellte Funktion „encodeURI“ entsprechend kodiert. Das Leerzeichen im Parameter name wird somit mit dem entsprechendem Escape-Zeichen ersetzt. Zur Kontrolle habe ich die komplete Url noch per Telegram versendet.

 

 

Anbei noch der Export des Blockly-Scripts.

Blockly - Beispiel - encodeURI (547 Downloads)

 

Ich hoffe Dir gefällt der Artikel. Ich freue mich über Deinen Kommentar oder Fragen 🙂

Die mobile Version verlassen