HttpUtils - Verständnisproblem mit urlEncode

Begonnen von DS_Starter, 20 Mai 2023, 19:45:10

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo Rudi,

es gibt schon lange das Modul 50_SSChatBot welches mittels HttpUtils mit Synology Chat kommuniziert.
Mit dem Upgrade auf Synology DSM 7.2 ist ein Problem aufgetreten welches ich nicht wirklich einordnen kann.

Es wird z.B. ein Call abgesetzt, der folgendermaßen aufgebaut ist:

https://IP_SYNO:5001/webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token="<secret>"&payload={"text": "Test","user_ids": [6]}


Dieser String wird HttpUtils (HttpUtils_NonblockingGet) übergeben. Dort werden ja auch, so mein Verständnis, in der Sub urlEncode die Zeichenersetzungen für Space etc. ausgeführt. Das hat auch immer anstandslos geklappt. Neuerdings haben Nutzer aber mit DSM 7.2 damit einen nginx Fehler "Bad Request" als Response erhalten.

Nach längerer Fehlersuche kam heraus, dass beim nginx folgender String im Log zu sehen ist:

IP_FHEM - - [19/May/2023:14:11:39 +0200] "GET /webapi/entry.cgi?api=SYNO.Chat.External&version=2&method=chatbot&token=\x22CHAT_BOT_TOKEN_HERE\x22&payload={\x22text\x22: \x22testABC\x22,\x22user_ids\x22: [6]} HTTP/1.0" 400 150 "-" "-" "-"

D.h. die " sind als \x22 codiert und das Leerzeichen noch vorhanden.
Als Maßnahme habe ich nun die Ersetzung von " in %22 und Space in %20 direkt im Modul vorgenommen womit es jetzt wieder einwandfrei funktioniert (Forum: https://forum.fhem.de/index.php?msg=1276387).

Mal abgesehen von der Tatsache dass dieser Fehler nur ab Synology DSM 7.2 auftritt (mit 6.2 gibt es keine Probleme) ... völlig unklar ... macht mich stutzig, dass HttpUtils die genannten Zeichen in der sub urlEncode wohl nicht in %22 bzw. %20 gewandelt hat wie es aussieht.

Kann mir das jemand erklären ?

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter