NEWS
http (GET) Aufruf mit username:password@ funktioniert nicht
-
Hallo
ich bekomme folgenden Scriptteil einfach nicht zum laufen.
Das Script wird ausgeführt, zumindest wird die debug Message ausgegeben, danach passiert aber nichts weiter.Wenn ich die Adresszeile in den Browser eingebe dauert es zwar 10-20s aber dann sagt das Gerät message received auf der Browserseite und es hat funktioniert.
Die ganze Adresszeile die aufgerufen werden soll sieht ungefähr so aus:
http://username:passwort@dynamischedns.my.to:1234/set?soc=2Liegt das Ganze daran dass der Get Befehl insgesamt nicht wirklich funktioniert oder am Adapter der das mit Username und Passwort so irgendwie nicht rüberbringt?
-
@arumpel
Schau Dir mal statt "Data" den "Staus code" an. -
@codierknecht
Da kommt 401 zurück was unauthorized heißt.
Wenn ich die URL aber mit copy und paste in den Brower kopiere und aufrufe klappt es.
Muss ich da irgendwas bei der Javascript Instanz noch einstellen oder installieren oder wo klemmts? -
@arumpel sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:
Liegt das Ganze daran dass der Get Befehl insgesamt nicht wirklich funktioniert oder am Adapter der das mit Username und Passwort so irgendwie nicht rüberbringt?
Der Get-Befehl wird schon funktionieren, aber evtl. nicht vollumfänglich mit Blockly. Je nach Art der zulässigen Authentifizierung (Basic, Bearer etc.) der Gegenseite müsste das evtl. in eine JS-Funktion ausgelagert werden.
Bei der Übergabe per URL müssen Sonderzeichen im Kennwort übrigens URL-kodiert werden. Das macht der Browser automatisch, der Get-Befehl in Blockly vermutlich nicht.Näheres dazu kann vielleicht Matthias @haus-automatisierung sagen.
-
@codierknecht Wenn es so im Browser geht, ist es ja einfach nur Basic-Authentication. Das klappt so auch mit Blockly.
Mal den Verbose-Mode im Script aktivieren. Dann sieht man mehr was genau gesendet wird und ob etwas zurückkommt.
-
@haus-automatisierung könnte/wäre/würde so ein Gerät vielleicht eventuell möglicherweise den User Agent prüfen?
-
@homoran Der User-Agent ist ja nur ein separater HTTP-Header und muss nichtmal übermittelt werden. Eine API würde den Agent-Header (hoffentlich) nie prüfen oder validieren.
Dennoch übermittelt der JavaScript-Adapter bei httpGet einen Agent, weil manche damit ja auch Webseiten parsen usw. Siehe
-
@haus-automatisierung sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:
Wenn es so im Browser geht, ist es ja einfach nur Basic-Authentication. Das klappt so auch mit Blockly.
Es könnten aber vielleicht bestimmte Sonderzeichen Ärger machen. Wird der Kram von httpGet auch URL-codiert?
-
@arumpel sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:
Wenn ich die URL aber mit copy und paste in den Brower kopiere und aufrufe klappt es.
hast du dich in dem Browser schon mal manuell authentifiziert?
oder andersherum:
klappt das auch im Inkognito-Tab? -
@haus-automatisierung sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:
Eine API würde den Agent-Header (hoffentlich) nie prüfen oder validieren.
Hatte ich auch schon. Musste dem Request dann einen unverfänglichen Agenten "unterjubeln"
-
@codierknecht sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:
Es könnten aber vielleicht bestimmte Sonderzeichen Ärger machen.
Alles Mutmaßungen und bringt ja niemanden weiter. URL Escaping muss man natürlich selbst machen.
Aber all das würde man im Log des Verbose-Mode ja sehen...