Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. httpGet entfernt "?" am Ende der Url

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    httpGet entfernt "?" am Ende der Url

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      noox last edited by noox

      Ich habe länger nicht mehr upgedatet. Daher daher bin ich erst jetzt auf das request -> httpGet-Problem gestoßen.

      Das Problem ist aber, dass die Ökofen Peletronic Heizung beim Auslesen der Werte teils ein "?" am Ende der Url benötigt.

      Konkret liefern folgende Anfrangen unterschiedliche JSON-Objekte:
      Nur Daten:
      http://192.168.1.20:4321/password/all
      Daten mit Metainfos:
      http://192.168.1.20:4321/password/all?

      Blöderweise scheint httpGet das ? am Ende der Url zu entfernen. Sobald ich noch etwas zusätzlich anhänge, liefert die Pelletronic aber eine Doku zum API.

      Gibt's da eine Option, das zu verhindern? Irgendwie ist es ein Bug - irgendwie nicht. Axios direkt zu verwenden, scheint eher mühsam zu sein...

      Update: Es scheint, dass selbst der Axios-Request das ? entfernt. Da muss ich noch weiter recherchieren.

      OliverIO F 2 Replies Last reply Reply Quote 0
      • OliverIO
        OliverIO @noox last edited by OliverIO

        @noox

        auf die schnelle gelesen scheint das ? als letzte zeichen nicht illegal zu sein.
        allerdings auch ziemlich nutzlos, da ja dannach query parameter kommen sollten
        https://datatracker.ietf.org/doc/html/rfc3986#section-3.4

        du kannst mal versuchen zu trixen und noch eine # anfügen

        also
        http://192.168.1.20:4321/password/all?#
        oder ein maskiertes leerzeichen
        http://192.168.1.20:4321/password/all?

        N 1 Reply Last reply Reply Quote 0
        • F
          fastfoot @noox last edited by

          @noox sagte in httpGet entfernt "?" am Ende der Url:

          Es scheint, dass selbst der Axios-Request das ? entfernt.

          das verwundert nicht, denn httpGet ist 'nur' ein Wrapper für axios. Du könntest aber noch ?= probieren

          1 Reply Last reply Reply Quote 0
          • N
            noox @OliverIO last edited by

            @oliverio
            Ich hatte einiges probiert. # noch nicht. Und das funktioniert tatsächlich. Ich kann nach dem # sogar noch Beliebiges Dranhängen.

            Aber: Axios entfernt das Fragezeichen in der Mitte dann trotzdem!

            OliverIO 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO @noox last edited by OliverIO

              @noox
              Also du könntest jetzt deine Daten abfragen?

              Das # ist das Fragmentzeichen. Meistens sieht man es in den Links, wenn auf Basis, dessen auf eine Anker ID in mitten des Dokuments verwiesen wird.

              https://de.wikipedia.org/wiki/Linux#Geschichte

              Homoran N 2 Replies Last reply Reply Quote 1
              • Homoran
                Homoran Global Moderator Administrators @OliverIO last edited by

                @oliverio sagte in httpGet entfernt "?" am Ende der Url:

                Das # ist das Fragmentzeichen. Meistens sieht man es in den Links,

                z.b. hier 😁
                Screenshot_20240712-113650_Firefox.jpg

                1 Reply Last reply Reply Quote 0
                • N
                  noox @OliverIO last edited by

                  @oliverio
                  Ja, hab grad gesehen - der Teil mit dem # wird vom Browser gar nicht an den Server gesendet. Daher funktioniert das im Browser.

                  Vermutlich ignoriert das Axios - zusammen mit dem Fragezeichen ebenfalls.

                  Die Abfrage mit ? funktioniert im ioBroker-Script noch nicht. Gibt es noch eine andere Möglichkeit einen HTTP-Request durchzuführen?

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @noox last edited by

                    @noox

                    Das Fragmentzeichen # interessiert nur den Client, nicht den Server.
                    Wie oben schon erwähnt ist ein alleinstehendes Fragezeichen nutzlos, da eigentlich danach die Queryparameter kommen.

                    https://en.wikipedia.org/wiki/Query_string#:~:text=The exact structure of the query string is not standardized. Methods used to parse the query string may differ between websites.

                    Da die RFC da nicht sehr strict formuliert ist, ist ein einzelne ? schon zulässig.
                    Axios verhält sich da etwas strikter. Es wäre interessant das mal als Issue aufzumachen. mal schauen, was da diskutiert werden würde. (Man beachte den konjunktiv 🙂 )

                    N 1 Reply Last reply Reply Quote 0
                    • N
                      noox @OliverIO last edited by

                      @oliverio
                      Ein einzelnes Fragezeichen ist sicher nicht Standard. Aber grad im IOT-Bereich hat man halt doch öfters mit etwas eigenwilligen APIs zu tun. Es ist halt nicht alles strikt REST und JSON (oder wie früher SOAP).

                      Ich habe auch schon überlegt, eine Issue zu öffnen. Aber wird wenig bringen. Eine ähnliche Diskussion gabs zu einer Python-Library vor 8-9 Jahren.

                      Einstweilen habe ich mir mit

                      exec("curl ....", ...);
                      

                      geholfen.

                      N 1 Reply Last reply Reply Quote 0
                      • P
                        peterfido last edited by

                        @noox
                        Evtl. schneidet Axios nur das letzte Fragezeichen weg. Hast Du mal ?? am Ende probiert?

                        1 Reply Last reply Reply Quote 0
                        • N
                          noox @noox last edited by noox

                          @peterfido
                          Ich hatte 2 Fragezeichen zuvor schon mal direkt bei der Ökofen Peletronic probiert - und dann zeigt die wieder die Dokumentation an. Immer wenn ein ungültiger Request kommt, dann wird die Dokumentation angezeigt.

                          Ich habe es jetzt nochmals mit httpGet probiert: es scheint, dass Axios dann nix wegschneidet. D.h. die beiden Fragezeichen weiterleitet, weil die Peletronic dann auch die Dokumentation liefert.

                          Frustrierend 😢

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          943
                          Online

                          31.7k
                          Users

                          79.6k
                          Topics

                          1.3m
                          Posts

                          5
                          11
                          350
                          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