"ed" parameter

Issue #16 resolved
Former user created an issue

Hello, a mav queryben az "ed" parameter mit takar? Valami hexa adatnak tunik (erteke most 5091ADF1, a multkor pl. 4FF6EB07 volt...), ez valami verzioszam vagy micsoda?

Comments (8)

  1. Róbert Oroszi repo owner

    Gondolom a Mávnak vmi belső azonosító.

    Fogalmam sincs, hogy mire használják, én a MÁV paramétereket nem módosítom.

  2. OPdev

    Az, de az Elvira csak ugy fogad el http post kerest, ha az a bizonyos szam egyezik a mavnal tarolt szammal. Vagy te nem post-on keresztul adod at neki az adatokat?

  3. Róbert Oroszi repo owner

    vannak speciális url-ek ahova POST kérést vár (ezekre az api nyújt is GET-tel elérhető url-eket illetve normalizálja a válaszokat is), de általában GET-tel is megy.

    Az "ed" paramétert a vonatinfónál használják, ott pl GET kéréssel is simán elkérhető az információ (bár az elvira mindig HTML-t fog visszaadni, míg az api több formátumban is képes kiszolgálni a kérést).

    ui: igen a számnak egyeznie kell, bár ezt nem nagyon teszteltem, hiszen mindig live adatokkal dolgozik az api, azaz amit visszakap az elvirától azt adja tovább. ui2: mi lenne a use-case ahol ez az ed paraméter állandósága olyan fontos lenne?

  4. OPdev

    Igen, a vonatinfonal is hasznaljak, de a fooldalon, ahol a "honnan", "hova", stb. mezok, es a keresogomb van... az Elvira innen is varja az "ed" parametert, postban, es itt fontos, hogy allando legyen. Ha megnezed, az oldal szerveroldalon kap egy "ed" parametert, ami a "Menetrend" gombra kattintas utan egy hidden valueben visszaadodik az szervernek (ugy mint "ed") - ha ez nem egyezik azzal, ami oldalletoltesnel a fooldalban szerepel, akkor atiranyit egy "A menetrend adatbázisa frissült. Kérjük, lépjen a nyitóoldalunkra." szovegu oldalra. Vagy te a vonatok adatait nem igy kapod meg? A "elvira.dll/xslvzs/uf" cimre kuldod a postot, nem?

  5. Róbert Oroszi repo owner

    Hát én ott nem is adok át ed paramétert, íme egy kérés curl-lel megírva:

    curl -X POST -d i=Budapest -d e=Szeged -d language=1 -d d=2012.11.02 http://elvira.mav-start.hu/elvira.dll/uf
    
  6. OPdev

    Oh, lol... nekem eszembe sem jutott, hogy ne adjak at ed-t. Probaltam ugy, hogy ed = 0, ugy hogy ed = "", es ugy hogy ed = null, de sehogy sem volt jo. Utoljara, irtam egy scriptet, ami idonkent lekeri az Elviratol ezt az "ed" parametert, fajlba irja, a scriptem pedig onnan olvassa ki..... Kosz a megoldasert!

        $nElviraLastversion = file_get_contents("elvira-version");
    
        $qs = (urldecode($_SERVER['QUERY_STRING']));
        $inp = json_decode($qs, false);
    
        $utdata = array(
            "ed" => $nElviraLastversion,
            "mikor" => "-1",
            "isz" => "0",
            "language" => "1",
            "k" => "",
            "ref" => "",
            "retur" => "",
            "nyit" => "",
            "vparam" => "",
            "i" => $inp->start,
            "d" => "12.10.28",
            "u" => "27",
            "v" => $inp->via,
            "go" => "Menetrend",
            "e" => $inp->target
        );
        $postdata = http_build_query($utdata);
    
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "http://elvira.mav-start.hu/elvira.dll/uf");
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_FAILONERROR, true);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLINFO_HEADER_OUT, true);
    
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
        curl_setopt($ch, CURLOPT_PORT, 80);
        curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate,sdhc");
        curl_setopt($ch, CURLOPT_REFERER, "http://elvira.mav-start.hu/");
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0");
        curl_setopt($ch, CURLOPT_HTTPHEADER, array  ("Origin: http://elvira.mav-start.hu",
                                                    "Connection: keep-alive",
                                                    "Cache-Control: max-age=0",
                                                    "Content-Type: application/x-www-form-urlencoded",
                                                    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                                                    "Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.3",
                                                    "Accept-Encoding: gzip,deflate,sdch",
                                                    "Accept-Language: hu-HU,hu;q=0.8,en-US;q=0.6,en;q=0.4"
                                                    ));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
        $buf = curl_exec($ch);
    
        if ( $buf === false) throw new Exception("Nem sikerult felvenni a szerverrel a kapcsolatot, probalkozzon kesobb!");
    
  7. Róbert Oroszi repo owner

    Hát még ezt a sok setopt se kell, mert amit írtam parancs az is visszaad mindent. :)

  8. Log in to comment