Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. http (GET) Aufruf mit username:password@ funktioniert nicht

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    http (GET) Aufruf mit username:password@ funktioniert nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      arumpel @Codierknecht last edited by

      @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?

      Homoran 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @arumpel last edited by

        @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.

        haus-automatisierung 1 Reply Last reply Reply Quote 0
        • haus-automatisierung
          haus-automatisierung Developer Most Active @Codierknecht last edited by

          @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.

          Homoran Codierknecht 2 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @haus-automatisierung last edited by

            @haus-automatisierung könnte/wäre/würde so ein Gerät vielleicht eventuell möglicherweise den User Agent prüfen?

            haus-automatisierung 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @Homoran last edited by haus-automatisierung

              @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

              https://github.com/ioBroker/ioBroker.javascript/blob/7778007eb9304658aed10f4a975de91864ad26bc/lib/tools.js#L169

              Codierknecht 1 Reply Last reply Reply Quote 1
              • Codierknecht
                Codierknecht Developer Most Active @haus-automatisierung last edited by

                @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?

                haus-automatisierung 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @arumpel last edited by

                  @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?

                  A 1 Reply Last reply Reply Quote 1
                  • Codierknecht
                    Codierknecht Developer Most Active @haus-automatisierung last edited by

                    @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" 😉

                    1 Reply Last reply Reply Quote 0
                    • haus-automatisierung
                      haus-automatisierung Developer Most Active @Codierknecht last edited by

                      @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...

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        arumpel @haus-automatisierung last edited by

                        @haus-automatisierung
                        Danke für die rege Beteiligung. Ich hoffe ich habe das richtige Log was Ihr sehen wollt. Geändert habe ich darin nur die dynamische DNS Adresse und username sowie passwort. Das sind aber alles nur normale Kleinbuchstaben im Original.

                        javascript.0 09:35:24.768 info script.js.BMS: Ändere BMS SOC
                        javascript.0 09:35:24.769 info script.js.BMS: httpGet(config={"method":"get","url":"http://dynamischedns.my.to:4718/set?soc=2","responseType":"text","responseEncoding":"utf8","timeout":60000,"auth":{"username":"username","password":"passwort"},"headers":{"User-Agent":"Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/121.0"}})
                        javascript.0 09:35:24.778 info script.js.BMS: getState(id=mqtt.0.BMS.Pack_Cell_Low_Voltage, timerId=undefined) => {"val":3.169,"ack":true,"ts":1745307321735,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1745307305763}
                        javascript.0 09:35:24.778 info script.js.BMS: sendTo(instance=telegram.0, cmd=send, msg={"text":"Akkustand kritisch! Geringste Zellenspannung: 3.169V"}, hasCallback=false)
                        javascript.0 09:35:25.979 info script.js.BMS: httpGet(url=http://username:passwort@dynamischedns.my.to:4718/set?soc=2, responseTime=1210ms)
                        javascript.0 09:35:25.980 info script.js.BMS: 401

                        1 Reply Last reply Reply Quote 0
                        • A
                          arumpel @Homoran last edited by arumpel

                          @homoran
                          Also im Chrome Inkognito Tab wenn ich die URL reinkopiere sagt er:

                          dynamischedns.my.to unterstützt keine sichere Verbindung
                          Du siehst diese Warnung, weil diese Website kein HTTPS unterstützt und du den Inkognitomodus nutzt. Weitere Informationen zu dieser Warnung...

                          Die URL die ich gepasted habe war aber nur http://... also ohne das s

                          Wenn ich es im Firefox Broswer im privaten Fenster mache klappt es.
                          Dann kommt ein message received vom Device zurück und der SOC wurde per Webhook geändert.

                          Homoran 1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @arumpel last edited by

                            @arumpel sagte in http (GET) Aufruf mit username:password@ funktioniert nicht:

                            Die URL die ich gepasted habe war aber nur http://... also ohne das s

                            war das auch hinterher noch so?
                            die Browser ändern das je nach Einstellungen eigenständig ab.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            1.0k
                            Online

                            31.7k
                            Users

                            79.7k
                            Topics

                            1.3m
                            Posts

                            4
                            14
                            372
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo