Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gel.] Script: Adresse ermitteln -> axios ändern in httpget

    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

    [gel.] Script: Adresse ermitteln -> axios ändern in httpget

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active @OliverIO last edited by

      @oliverio sagte in Script: Adresse ermitteln -> axios ändern in httpget:

      Zum Testen, welche headers und sonstige Daten dein request so alles übermittelt, kannst du dir hier eine individuelle Server Adresse generieren lassen. Auf der Seite dann, siehst du dann die requests mit all seinen Daten Und headers

      starker Text.
      Hab ich so auf Anhieb nicht verstanden.

      Komm ich aber noch dahinter 😉

      Danke dir.

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

        @bahnuhr

        Axios oder httpget sendet Daten.
        Irgendwo wohl auch unterschiedlich, obwohl hinter httpget auch axios steht.
        Genau anhand diesem Unterschied wird der request aber abgelehnt.
        Das es der User Agent String ist ist nur eine Vermutung. Serverbetreiber geben meistens nicht bekannt anhand welchen Kriterien sie ablehnen.

        Mit diesem Test findest du hoffentlich dann den Unterschied auch wirklich raus, weil du siehst, was am anderen Ende ankommt und nicht nur was du weg sendest.

        Ro75 F 2 Replies Last reply Reply Quote 1
        • bahnuhr
          bahnuhr Forum Testing Most Active last edited by

          So, habe mal als Muster das von @DJMarc75 genommen.
          Also ohne dieses async und await; aber mit random

          sieht so aus:

          var lat = 48.46567; var lon = 9.7107;
          var v_random = String(Math.floor(Math.random() * 100)); log (v_random);
          
              httpGet(`https://nominatim.openstreetmap.org/reverse?format=geojson&lat=${lat}&lon=${lon}`,
                  { timeout: 15000, headers: { 'User-Agent': "iob" + v_random, }, },
                  (err, response) => {
                      if (!err  && response.statusCode == 200) { const info = JSON.parse(response.data); const address = info.features[0].properties.address;
                          log ("Str= " + address.road); log ("Nr= " + address.house_number); 
                          log ("Plz= " + address.postcode); log ("Ort= " + address.municipality);
                      } else { console.error(`Nominatim: ${response.statusCode}`); }
                  }
              );
          
          1 Reply Last reply Reply Quote 1
          • Ro75
            Ro75 @OliverIO last edited by Ro75

            @oliverio sagte in Script: Adresse ermitteln -> axios ändern in httpget:

            Das es der User Agent String ist ist nur eine Vermutung. Serverbetreiber geben meistens nicht bekannt anhand welchen Kriterien sie ablehnen.

            Da bin ich für mich weiter. Für mich steht es fest, dass der USER-Agent zu 95% daran beteiligt ist. Ich hatte, als ich gesperrt wurde mein Abfrage-URL in meinen Windows-Browser eingegeben und da ging es. Im iobroker wiederholt mit dem Ergebnis = NO.

            Also mal die IP gewechselt. Ein Teil war anders, aber selbiges Ergebnis 1xJa und 1xNein. Nochmal die IP gewechselt. Komplett anderer Bereich, aber auch hier war das Ergebnis identisch.

            Für mich steht also fest, die prüfen IP ind Verbindung mit USER-Agent und Anzahl Aufrufe.

            Ich wechsel aller 6 Stunden den USER-Agent für Nominatim.

            httpGet('https://nominatim.openstreetmap.org/reverse?format=geojson&lat='+lat+'&lon='+lon, { timeout: 15000,"headers":{"User-Agent":"'" + RUA() + "'"}}, (error, response) => {
            
            

            Ro75.

            1 Reply Last reply Reply Quote 2
            • F
              fastfoot @OliverIO last edited by

              @oliverio also der einzige Unterschied auf der Seite ist der UA. axios sendet da als default nur axios/1.7.7 während httpGet da einen UA sendet der für mich wie der eines Browsers aussieht. Ich sehe keinen Grund den UA zu wechseln wie es einige hier tun, das ist nur der Versuch Restriktionen zu umgehen und schadet somit letztlich der Community

              OliverIO bahnuhr 2 Replies Last reply Reply Quote 0
              • OliverIO
                OliverIO @fastfoot last edited by

                @fastfoot

                Das Script bei dem axios verwendet wird und funktioniert, wird kein ua gesetzt. Siehe gleich erster Post.

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

                  @oliverio axios setzt den selbst! Quasi als default

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • bahnuhr
                    bahnuhr Forum Testing Most Active @fastfoot last edited by

                    @fastfoot sagte in Script: Adresse ermitteln -> axios ändern in httpget:

                    Ich sehe keinen Grund den UA zu wechseln wie es einige hier tun,

                    Naja; als normaler user bekommt man aber immer wieder gesagt:
                    man soll httpget nehmen.
                    request und axios sind alt.

                    Dass bei httpget axios im Hintergrund ist, war mir bis jetzt neu.
                    Und ein Wechsel des UA bei httpget scheint notwendig zu sein, denn ohne dies klappt es offensichtlich nicht.

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

                      @fastfoot sagte in Script: Adresse ermitteln -> axios ändern in httpget:

                      @oliverio axios setzt den selbst! Quasi als default

                      Das weiß ich.
                      Wo siehst du den jetzt den Unterschied warum der request abgesetzt wird, wenn bei beiden wahrscheinlich der Standard axios ua Header gesetzt wird?
                      Wenn, dann sollte doch der request mit axios header gesperrt werden, wie ein request der so aussieht als ob er von einem Browser kommt.

                      Aber wie gesagt alles Vermutung.
                      Sobald Bahnuhr den Test durchgeführt hat werden wir den Unterschied kennen.
                      Oder er liefert noch seinen httpget code dann kann ich mal schauen

                      F bahnuhr 3 Replies Last reply Reply Quote 0
                      • F
                        fastfoot @OliverIO last edited by

                        @oliverio sagte in Script: Adresse ermitteln -> axios ändern in httpget:

                        Wo siehst du den jetzt den Unterschied ...

                        ich habe den Test bereits durchgeführt, dachte das sei aus meiner Antwort herauszulesen 🙂

                        1 Reply Last reply Reply Quote 0
                        • bahnuhr
                          bahnuhr Forum Testing Most Active @OliverIO last edited by

                          @oliverio sagte in Script: Adresse ermitteln -> axios ändern in httpget:

                          Oder er liefert noch seinen httpget code dann kann ich mal schauen

                          Ne, der ist schon weg.

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

                            @bahnuhr

                            Gut, wenn dann alles funktioniert, dann auf gelöst setzen

                            bahnuhr 1 Reply Last reply Reply Quote 0
                            • F
                              fastfoot @OliverIO last edited by fastfoot

                              @oliverio sagte in Script: Adresse ermitteln -> axios ändern in httpget:

                              Wenn, dann sollte doch der request mit axios header gesperrt werden, wie ein request der so aussieht als ob er von einem Browser kommt.

                              meine Vermutung ist dass die Website erkennt ob der UA wirklich von einem Browser kommt und dann entsprechend zurückweist. Wissen tu ich es nicht aber wenn der einzige Unterschied der UA ist was soll es dann sonst sein? Der UA header ist ja auch nur ein Hinweis für die Website, wenn da jetzt von Chrome zB tausende Anfragen kommen welche einen Fehler verursachen dann kann man da gut darauf reagieren. Dazu ist es aber notwendig den Header richtig zu setzen und nicht zu faken, siehe hier zur Erläuterung

                              1 Reply Last reply Reply Quote 0
                              • bahnuhr
                                bahnuhr Forum Testing Most Active @OliverIO last edited by

                                @oliverio sagte in [gel.] Script: Adresse ermitteln -> axios ändern in httpget:

                                dann auf gelöst setzen

                                musste es abkürzen 😉
                                Text war zu lang.

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

                                  @bahnuhr sagte in Script: Adresse ermitteln -> axios ändern in httpget:

                                  @fastfoot sagte in Script: Adresse ermitteln -> axios ändern in httpget:

                                  Ich sehe keinen Grund den UA zu wechseln wie es einige hier tun,

                                  Naja; als normaler user bekommt man aber immer wieder gesagt:
                                  man soll httpget nehmen.
                                  request und axios sind alt.

                                  Dass bei httpget axios im Hintergrund ist, war mir bis jetzt neu.
                                  Und ein Wechsel des UA bei httpget scheint notwendig zu sein, denn ohne dies klappt es offensichtlich nicht.

                                  das ist nicht ganz richtig: request ist alt und der Ersatz ist definitiv axios. Wenn aber irgendwann axios auch alt ist(oder nicht mehr supported wird) dann besteht für die User des JS-Adapters wieder die Notwendigkeit sich auf eine neue Software einzustellen. Der Ansatz von httpGet ist nun einen Wrapper zu benutzen der unter der Haube die jeweils neueste/beste/empfohlene Software zu nutzen, ohne dass der User etwas davon bemerkt. Das heisst dass der wahre Vorteil von httpGet erst dann zum Tragen kommen wird wenn axios mal abgelöst werden muss/sollte. Ich sehe seinen Vorteil hauptsächlich für Blockly, da JS-Programmierer eher wissen was sie tun.

                                  Was den UA angeht, der muss ja nur gewechselt werden weil die Website den vom JS Adapter vergebenen nicht akzeptiert, jedoch nur einmal und nicht alle 6 Stunden oder Random wie du es von @DJMarc75 übernommen hast. Vorher mit axios war das bei dir ja auch nicht notwendig, warum jetzt auf ein Fake setzen?

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

                                    @fastfoot sagte in [gel.] Script: Adresse ermitteln -> axios ändern in httpget:

                                    . Ich sehe seinen Vorteil hauptsächlich für Blockly, da JS-Programmierer eher wissen was sie tun.

                                    Die Umstellung hat gezeigt, dass ganz viele hier einfach Scripts per copy/paste aus dem Forum nutzen und bei kleinen Änderungen schon überfordert sind. Daher probiere ich die Beispiele auch immer auf httpGet oder httpPost umzubauen, damit das in Zukunft auch kein Problem darstellt.

                                    F 1 Reply Last reply Reply Quote 2
                                    • F
                                      fastfoot @haus-automatisierung last edited by

                                      @haus-automatisierung ich hatte gezögert es so zu schreiben 🙂 Du hast aber vollkommen Recht und leider wird dieses 'Problem' auch bleiben. Immerhin ist die Idee sehr gut und wird sich auch mal 'auszahlen'. Ich war da in der Vergangenheit ja eher skeptisch aber dein Argument überzeugt mich so dass auch ich in Zukunft nur noch Beispiele mit httpGet und httpPost posten werde. Die kleine Kröte dass das dann 'nur' im iobroker JS-Adapter läuft werde ich einfach schlucken, letztlich dreht sich hier ja eh alles um den iobroker

                                      OliverIO 1 Reply Last reply Reply Quote 1
                                      • OliverIO
                                        OliverIO @fastfoot last edited by

                                        @fastfoot
                                        du kannst doch dennoch axios oder sogar request direkt verwenden.
                                        musst dich halt bei änderungen der bibliothekten in zukunft selbst drum kümmern.

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        889
                                        Online

                                        31.9k
                                        Users

                                        80.1k
                                        Topics

                                        1.3m
                                        Posts

                                        7
                                        33
                                        1281
                                        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