Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. axios.get Abfrage

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    axios.get Abfrage

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

      Hallo zusammen,

      irgendwie bin ich zu doof eine Axios.get anfrage zu stellen. Ich möchte eine lokale api abfrage machen.
      Wenn ich die abfrage in die Adresszeile folgendermaßen eingebe

      http://passwort:apikey@192.168.178.113/api/v1/info

      bekomme ich folgende Antwort.

      {"diameter":0.40,"serial":abcd1123456789","hostname":"XYZ"}

      jetzt würde ich dies gerne mit axios.get abfrage, aber irgendwie bekomme ich es nicht hin. Stehe absolut auf dem Schlauch.
      Habt ihr vielleicht einen Tip für mich wie ich die Abfrage gestallten kann?

      Danke und Gruß Jochen

      SBorg haus-automatisierung 2 Replies Last reply Reply Quote 0
      • SBorg
        SBorg Forum Testing Most Active @Cassilo last edited by SBorg

        @cassilo
        Beim Passwort und APIKey bin ich mir nicht ganz sicher, aber Versuch macht kluch 😉

        const axios = require('axios');
         
        
            try {
                const options = {
                    method: 'get',
                    url: 'http://passwort:apikey@192.168.178.113/api/v1/info', // ev. muss PW + Key separat in die Options
                    headers: { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1" }
                };
        
                axios(options).then(function (response) {
                
                    if (response.statusCode == 200) { // kein Fehler, Inhalt in body
                        log("Gelesen: " + response.data);
                    } else {
                        log("StatusCode = " + response.statusCode);
                    }
                });
            } catch (e) {
                log("Fehler (try) leseWebseite: " + e, "error");
            }
            log("Fertig eingelesen", "info");
        

        [Trocken geschrieben, ungetestet, und ev. "verklammert" 😊 ]

        1 Reply Last reply Reply Quote 0
        • C
          Cassilo last edited by

          @sborg
          Danke für den Code.
          Aber leider bekomme ich im log eine 408. Also einen Timeout.
          Setze ich
          username:
          und
          password:
          in die options bekomme ich 401.

          Gruß Jochen

          SBorg 1 Reply Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active @Cassilo last edited by

            @cassilo
            Hatte ich mir schon gedacht... 😉

            
            const axios = require('axios');
             
             
                try {
                    const options = {
                        method: 'get',
                        url: 'http://192.168.178.113/api/v1/info',
                        headers: { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1" },
                        auth: {
                                    username: 'xxxxxxxxxxxxx',
                                    password: 'xxxxxxxxxxxxx'
                                }
                    };
             
                    axios(options).then(function (response) {
                    
                        if (response.statusCode == 200) { // kein Fehler, Inhalt in body
                            log("Gelesen: " + response.data);
                        } else {
                            log("StatusCode = " + response.statusCode);
                        }
                    });
                } catch (e) {
                    log("Fehler (try) leseWebseite: " + e, "error");
                }
                log("Fertig eingelesen", "info");
            
            

            Solange man sich mit BasicAuth einloggen kann.

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

              @cassilo Warum nicht einfach mit httpGet?

              C 1 Reply Last reply Reply Quote 0
              • C
                Cassilo @haus-automatisierung last edited by

                @haus-automatisierung
                kann ich auch probieren. Mit axios hats bisher nicht geklappt.
                Muss ich mir mal anschauen http get.

                1 Reply Last reply Reply Quote 0
                • C
                  Cassilo last edited by

                  Leider funktioniert es mit http get auch nicht.
                  Ohne username und password in der url bekomme ich 401 unauthorized.
                  Mit in der url bekomme ich einen timeout.
                  Für mich heißt das im Prinzip das die Authentifizierung funktioniert aber ich halt an die Daten nicht komme. 😞
                  Gruß Jochen

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

                    @cassilo Welche Adapter-Version nutzt Du?

                    C 1 Reply Last reply Reply Quote 0
                    • C
                      Cassilo @haus-automatisierung last edited by

                      @haus-automatisierung
                      Javascript Adapter in der Version 8.3.1

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

                        @cassilo Dann sollte das so klappen. Oben im Beispiel stimmen übrigens deine Logausgaben in der Reihenfolge später nicht. "Fertig gelesen" wird definitiv vor der Antwort vom Server ausgegeben. Das ist ja alles asynchron.

                        https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httpget

                        httpGet(
                            'http://192.168.178.113/api/v1/info',
                            {
                                timeout: 2000,
                                basicAuth: {
                                    user: 'xx',
                                    password: 'xxx',
                                },
                            },
                            (err, response) => {
                                if (!err) {
                                    if (response.statusCode === 200) {
                                        console.log(`Gelesen: ${response.data}`);
                                    } else {
                                        console.log(`StatusCode: ${response.statusCode}`);
                                    }
                                } else {
                                    console.error(err);
                                }
                            }
                        );
                        
                        C 1 Reply Last reply Reply Quote 0
                        • C
                          Cassilo @haus-automatisierung last edited by Cassilo

                          @haus-automatisierung

                          danke für die Hilfe. Aber leider ist das Ergebnis das selbe.

                          Mit basicAuth bekomme ich einen Timeout und wenn ich die Zeilen auskommentiere bekomme ich eine 401 Meldung.
                          Ich weiß nicht was, aber irgendwas ist da sehr komisch. Egal welche Methode, das Ergebnis ist leider immer das gleiche.

                          OliverIO 1 Reply Last reply Reply Quote 0
                          • C
                            Cassilo last edited by

                            Was mir aufgefallen ist, ist das der JavasScript Adapter hier folgende Meldung aus gibt.

                            Bildschirmfoto 2024-06-16 um 10.23.47.png

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

                              @cassilo sagte in axios.get Abfrage:

                              Was mir aufgefallen ist, ist das der JavasScript Adapter hier folgende Meldung aus gibt.

                              Ist schon behoben in der aktuellen Beta.

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

                                @cassilo
                                Hier nochmal ein Hinweis von axios
                                Was die Lösung dazu ist hab ich jetzt direkt nicht gesehen
                                https://github.com/axios/axios/issues/5753

                                nizar787 created this issue in axios/axios

                                closed New version of axios does not allow for encoding user:password in request URL #5753

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

                                  @oliverio Die httpGet-Funktion nimmt intern die URL auseinander und setzt die Header richtig. Funktioniert also auch mit Credentials in der URL.

                                  https://github.com/ioBroker/ioBroker.javascript/blob/6162239596a4d4f5ca9001dc136aacf3061f4013/lib/tools.js#L150-L162

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  741
                                  Online

                                  31.8k
                                  Users

                                  80.0k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  15
                                  563
                                  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