Hallo,
normalerweise kenne ich das so, dass bei URLs mit Prozent diese dekodiert werden. Auch im Authentifizierungs-Teil, den man für die URL in "Calendar" braucht. In FHEM gibt es bereits die Dekodierfunktion. Diese wird habe hierfür nicht verwendet. Mit der angehängten winzigen Änderung funktioniert das bei mir jetzt seit Monaten. Muss nur natürlich beim Update immer aufpassen, dass ich sie wieder einspiele.
Oder soll man alles direkt in die URL schreiben? Wäre beispielsweise bei Leerzeichen schwierig.
Also mit Sonderzeichen im Passwort hatte ich in der HttpUtils nie Probleme, und in einem Usernamen hat sowas schlicht nichts verloren. In welchen Teil wurde es bei Dir nötig das zu encodieren? Username oder Passwort?
War für das Passwort nötig. Aber wenn es gewollt wird, dass man das direkt angibt, probiere ich es noch einmal. Allerdings verhält sich dann der Browser anders als FHEM, wenn im Passwort ein Prozent vorkommt. Man könnte es dann es dann auch nicht im Browser testen.
Interessant. Muss gestehen Prozentzeichen hatte ich noch nie. Hast du Mail in der Maintainer Datei geschaut ob das Forum korrekt ist? Wenn es das ist wird Rudi hier bestimmt was zu schreiben.
Mein Bauchgefühl sagt aber dass er den Patch für nicht wichtig hält und ihn daher ablehnt.
Kann mich aber auch irren ;D
In der MAINTAINER.txt steht:
FHEM/HttpUtils.pm rudolfkoenig http://forum.fhem.de Automatisierung
Dann passt es. Gib ihm etwas Zeit. Ist gerade erst wieder zurück und muss sich einarbeiten.
Ich habe es eingecheckt, auch wenn ich nicht ganz sicher bin, ob es so richtig ist.
Immerhin kann man jetzt ein @ im Passwort angeben, alle anderen Zeichen muessten auch bisher funktioniert haben.
Und die, die %<hex> im Passwort haben, muessen das URL neu schreiben.
Zitat von: rudolfkoenig am 05 September 2017, 09:16:39
Ich habe es eingecheckt, auch wenn ich nicht ganz sicher bin, ob es so richtig ist.
Immerhin kann man jetzt ein @ im Passwort angeben, alle anderen Zeichen muessten auch bisher funktioniert haben.
Und die, die %<hex> im Passwort haben, muessen das URL neu schreiben.
Rudi ich kann Dir sagen das ein @ im Passwort auch schon vorher super geklappt hat. Hatte so einen Kandidaten im Test meines Gardena Modules. Daher weiß ich das so genau.
Hast recht, der Regexp ist greedy:
/^(http|https):\/\/(([^:\/]+):([^:\/]+)@)?([^:\/]+)(:\d+)?(\/.*)$/
Dieser Regexp wird mir langsam zu unlesbar, ich will es auseinandernehmen oder wenigestens auf Mehrzeiler umbauen.
Muss ja auch noch IPv6 lernen.
Danke. Dann kann ich jetzt die URLs im Browser testen. Außerdem würden dann auch Doppelpunkt (im Benutzer natürlich nicht) und Slash im Passwort funktionieren.