Karl Heinz: Name einer XML-Datei auf URL herausfinden

Hallo,

ein Kunde hat mir folgende URL zur Verfügung gestellt:

http://kapselprofi.de/?woocommerce_gpf=google

Auf dieser URL bzw. diesem Pfad liegt eine XML-Datei.

Nun hat die XML-Datei ja auch einen Namen. Könnt Ihr mir sagen, wie ich diesen Namen herausfinden kann? Mein Kunde weiß nicht wie er das machen soll. Einen ftp-Zugang habe ich leider nicht. Kann ich den Namen der XML-Datei trotzdem irgendwie herausfinden?

  1. Hallo

    ein Kunde hat mir folgende URL zur Verfügung gestellt:

    http://kapselprofi.de/?woocommerce_gpf=google

    Auf dieser URL bzw. diesem Pfad liegt eine XML-Datei.

    Nicht zwingend. Vermutlich verbirgt sich hinter der URL ein Skript, welches anhand des URL-Parameters eine XML-Ressource ausliefert. Diese Ressource kann eine tatsächlich vorhandene Datei sein, es kann aber auch ein durch das Skript on the fly erstellter XML-Block sein, der dem Browser dann als Download angeboten wird. Im letzten Fall wird erst durch das downloaden und abspeichern auf den lokalen Rechner (oder wo auch immer) eine Datei erzeugt.

    Nun hat die XML-Datei ja auch einen Namen. Könnt Ihr mir sagen, wie ich diesen Namen herausfinden kann?

    Wenn es der Anbieter der Seite nicht vorsieht, kannst du den Namen der auf seinem System vermuteten Datei nicht herausfinden.

    Tschö, Auge

    --
    Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
    Toller Dampf voraus von Terry Pratchett
  2. (Parallelpost zu Auge :) )

    Ganz allgemein gesehen: Nein. Irgendeine serverseitige Komponente beschließt, diese URL auf irgendeine Ressource zu mappen und liefert sie Dir aus. Diese Ressource muss zu keiner Zeit eine Datei sein, es kann auch das Ergebnis einer Datenbankabfrage sein.

    Der Server KANN - muss aber nicht - Dir einen Namen für das Dokument im Content-Disposition Response Header VORSCHLAGEN.

    In diesem ganz konkreten Szenario ist das der Fall, da steht:

    Content-Disposition:inline; filename="E-Commerce_Product_List.xml"
    

    Diesen Namen bekommst Du auch angezeigt, wenn Du dem Browser "Speichern" sagst.

    Allerdings heißt das nach wie vor nicht, dass das XML Dokument tatsächlich als Datei bei kapselprofi.de vorliegt. Es kann immer noch ein dynamische erzeugter Datenstrom sein, und die Content-Disposition wird mitgeliefert, um dem Anwender einen Namensvorschlag zu liefern.

    Rolf

    1. Hello,

      Wenn es etwas konkreter wird und eine physische Datei hinter der Ressource liegt, dann KANN der Server - muss aber nicht - Dir den Namen im Content-Disposition Response Header mitteilen.

      In diesem ganz konkreten Szenario ist das der Fall, da steht:

      Content-Disposition:inline; filename="E-Commerce_Product_List.xml"
      

      Dieser Name ist aber nutzlos, wenn sich Karl Heinz nicht die "Versionsangaben" dazu merkt.

      Das wären in diesem Fall die Zeitpunkte des Requests und der Response. Die müssen keinesfalls übereinstimmen. Manchmal dauert die Antwort ja eine Weile.

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es
      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
      1. Namen sind eh nutzlos, eine GUID reicht immer ;-)

        Version, tja, wenn hier denn irgendwo eine Versionierung erkennbar wäre, im Request oder der Response.

        Natürlich steht es dem Anbieter frei, eine Ressource zu historisieren und jederzeit zu aktualisieren. Ein flüchtiger Blick ins XML zeigt mir aber keinen Hinweise auf einen Gültigkeitszeitpunkt. Und der Request bietet auch keine Versions-Referenz. Die Response ist also auf jeden Fall eine Momentaufnahme des Zeitpunktes, zu dem der Request am Server verarbeitet wird (welcher wiederum IRGENDWO zwischen dem Moment des Requestversands und des Responseempfangs liegt).

        D.h. Karl Heinz kann sich nur auf den Moment verlassen, zu dem das Dokument bei ihm eintrifft, und diesen Zeitpunkt zusammen mit dem Dokument speichern. Dafür gips eine Menge Möglichkeiten: Dateidatum, Dateiname um YYYMMDDHHMMSS erweitern, SQL-Datensatz mit Datum und Dokument-BLOB, Versionieren per GIT, was auch immer.

        Rolf

    2. Der Server KANN - muss aber nicht - Dir einen Namen für das Dokument im Content-Disposition Response Header VORSCHLAGEN.

      In diesem ganz konkreten Szenario ist das der Fall, da steht:

      Content-Disposition:inline; filename="E-Commerce_Product_List.xml"
      

      Ich brauchte den Namen um die XML-Daten automatisiert täglich über das Google Merchant-Center abzurufen. Mit "E-Commerce_Product_List.xml" funktioniert es :-). Mit anderen Namen funktioniert es nicht. Wie kommt es das das Abrufen nur mit "E-Commerce_Product_List.xml" funktioniert und nicht mit anderen Namen?

      Hier noch eine Screenshot aus dem Google Merchant-Center:

      Screenshot Googel Merchant-Center

      1. Hello,

        Screenshot Googel Merchant-Center

        Das ist jetzt Glaskugel-Reiben...
        Was der Anbieter da eingebaut hat, können wir nicht sehen.

        Du solltest uns zunächst mal zeigen, was hinter den Fragezeichen als Erläuterung steht.
        Es könnte auch sein, dass Du den Ziel-Dateinamen für deinen Client vorgeben kannst. Dann könntest Du dort zumindest schon mal eine Versionskennung unterbringen (Zeitpunkt des Abrufes).

        Die Ressource ist ja schon eindeutig über die URL gekennzeichnet.

        Wie gesagt: Glaskugel

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es
        Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
        1. Du solltest uns zunächst mal zeigen, was hinter den Fragezeichen als Erläuterung steht.

          Nicht viel, einfach nur "Feed Einrichtung".

          Klappt ja jetzt von daher würde ich sagen vielen Dank und Problem gelöst.

          1. Hello,

            Du solltest uns zunächst mal zeigen, was hinter den Fragezeichen als Erläuterung steht.

            Nicht viel, einfach nur "Feed Einrichtung". Klappt ja jetzt von daher würde ich sagen vielen Dank und Problem gelöst.

            Du bist ja aber zum Glück keiner, der sich mit "klappt ja, egal warum" zufrieden gibt.
            Hast Du denn mal versucht, einen anderen Dateinamen einzugeben?
            Was passiert dann? Gibt's dann auf die Finger, oder kommt auch eine XML-Datei als Antwort?

            Liebe Grüße
            Tom S.

            --
            Es gibt nichts Gutes, außer man tut es
            Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
            1. Du bist ja aber zum Glück keiner, der sich mit "klappt ja, egal warum" zufrieden gibt.

              So sind ja leider die meisten, was mich offen gesprochen ziemlich nervt, die meisten Leute haben sooooo wenig Ahnung.

              Ihr hier im Forum seid so ein bißchen mein Vorbild :-).

              Das Problem: Je mehr man weiß je mehr nervt das "Nicht Wissen" der anderen, zumindest dann wenn Sie so tun als ob Sie viel wissen aber Null Ahnung haben (und davon gibt es leider viele). Weiß nicht ob das euch auch so geht?

              Gegenüber meinen Kunden komme ich mir vor wie ein Freak gegenüber Euch hier eher wie ein Depp 😀, alles eine Sache der Perspektive.

              Hast Du denn mal versucht, einen anderen Dateinamen einzugeben?

              Ich Mechant-Center habe ich es mit einem anderen Dateinamen getestet, klappt nicht. Hatte dahingehend auch mal mit Google telefoniert, da war dann so ne Dame am Telefon die Null Ahnung hatte, die hat mir nicht zugehört und nix verstanden, hat mich einfach nur Zeit gekostet. Echt nervig sowas. Dabei zahlt Google weltweit mit am besten, da sollte man etwas mehr Kompetenz erwarten können.

              Was passiert dann? Gibt's dann auf die Finger, oder kommt auch eine XML-Datei als Antwort?

              Der meckert, dass er eine Datei mit diesem Namen nicht finden kann.

              1. Hello,

                Hast Du denn mal versucht, einen anderen Dateinamen einzugeben?

                Ich Mechant-Center habe ich es mit einem anderen Dateinamen getestet, klappt nicht. Hatte dahingehend auch mal mit Google telefoniert, da war dann so ne Dame am Telefon die Null Ahnung hatte, die hat mir nicht zugehört und nix verstanden, hat mich einfach nur Zeit gekostet. Echt nervig sowas. Dabei zahlt Google weltweit mit am besten, da sollte man etwas mehr Kompetenz erwarten können.

                Was passiert dann? Gibt's dann auf die Finger, oder kommt auch eine XML-Datei als Antwort?

                Der meckert, dass er eine Datei mit diesem Namen nicht finden kann.

                Dann ist Rolfs Vermutung mit dem "verkappten Schlüssel" schon sehr wahrscheinlich.

                Liebe Grüße
                Tom S.

                --
                Es gibt nichts Gutes, außer man tut es
                Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
      2. Du gibst den Namen im Merchant Center ein und offenbar wird er unter der Haube noch als Schlüssel für den Zugriff verwendet. Wie auch immer das API aussieht, das Google mit dem Anbieter vereinbart hat. Sie könnten die URL verlängern, sie könnten einen Custom-Header im Request verwenden, sie könnten einen POST machen und den Namen als Formdata übermitteln, da gibt's viele Möglichkeiten. Wenn RSS da irgendwas zu vorgibt, dann muss ich zugeben, mich darin nicht auszukennen.

        Wenn es ein Feed ist, ist die Chance allerdings relativ hoch dass der Inhalt dynamisch generiert wird und nicht aus einer serverseitigen Datei kommt. Der Name ist dann eher eine Themenbezeichnung, und wie Du die XML Datei bei Dir lokal speicherst, ist eigentlich Dir überlassen.

        Rolf