Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 11838|Odpoveď: 1

Rozhrania a formáty dát súvisiace so softvérom na zachytávanie tiketov 12306

[Kopírovať odkaz]
Zverejnené 27. 9. 2017 10:15:39 | | |

Poďme rovno k veci, tu chcem hlavne hovoriť o rozhraniach a dátových formátoch súčasných funkcií 12306. Je rozdelený hlavne do piatich modulov: prihlásenie, získavanie kontaktov, kontrola tiketov, rezervácia a odosielanie dotazov na nedokončené objednávky, čo sa týka niektorých iných rozhraní, ktoré nie sú dôležité, môžete priamo ignorovať, napríklad zistiť, či je overovací kód správny, požiadať o zostávajúci počet tiketov a podobne. Tento článok je napísaný a môžete si ho sami preštudovať, ak ho potrebujete.
       1. Prihlásiť sa
             Prihlásenie slúži hlavne na získanie relácie a udržiavanie komunikácie so serverom. Existujú dva hlavné kroky prihlásenia
             Najprv získajte overovací kód na prihlásenie
                     Metóda: ZÍSKAŤ
                     Rozhranie: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=login&rand=sjrand&
                     Parametre: rozumiem, to isté
                     Späť: Binárny obrazový tok
             Druhé prihlásenie
                    Metóda: POST
                    Rozhranie: https://kyfw.12306.cn/otn/login/loginAysnSuggest
                    Parametre: 1. loginUserDTO.user_name Používateľské meno
                               2. overovací kód randCode
                               3. heslo používateľaDTO.password
                     Vracia: reťazec json, ktorý môže určiť, či je prihlásenie úspešné
        2. Získaj kontakty
                    Metóda: ZÍSKAŤ
                    Rozhranie: https://kyfw.12306.cn/otn/passengers/init
                    Parametre: Žiadne
                    Return: html súbor, môžete v ňom nájsť premennú, ktorá je vo formáte json a dá sa parsovať do používateľského objektu
        3. Kontrola lístkov
                    Metóda: ZÍSKAŤ
                    Rozhranie: https://kyfw.12306.cn/otn/leftTicket/query?
                    Parametre: leftTicketDTO.train_date: Dátum kontroly lístka
                               leftTicketDTO.from_station: Štartovacia stanica (abecedný kód)
                               leftTicketDTO.to_station: Cieľová stanica (abecedný kód)
                               purpose_codes: DOSPELÍ
                    Návrat: Vráti sa do formátu JSON a analyzuje priamo
         4. Rezervácia
                   Vymenovanie je rozdelené do 6 krokov, jeden po druhom, navzájom prepojených
                   Po prvé: Predodoslanie
                            Metóda: POST
                            Rozhranie: https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest
                            Parameter: secretStr: získané kontrolou lístkov (jeden pre každý vlak, zakaždým iný, musí sa analyzovať v reálnom čase)
                                      train_date: Dátum rezervácie
                                     back_train_date: Dátum návratu
                                      tour_flag: DC
                                      purpose_codes: DOSPELÍ
                                      query_from_station_name: Odletová stanica
                                      query_to_station_name: Cieľová stanica
                                      nedefinované: prázdny reťazec
                           Return: Vráti formát JSON, aby zistil, či je odoslanie úspešné
                    Po druhé: Získajte zodpovedajúce parametre
                            Metóda: POST
                            Rozhranie: https://kyfw.12306.cn/otn/confirmPassenger/initDc
                             Parametre:
                              _json_att: Prázdny reťazec
                             Return: html súbor, užitočný pri parsovaní globalRepeatSubmitToken v prvých riadkoch a získaní hodnoty premennej ticketInfoForPassengerForm z nižšie, je vo formáte json, z ktorého purpose_codes, key_check_isChange, leftTicketStr, train_locatio{filter} n na prípravu nasledujúcich commitov
                    Po tretie: Získajte overovací kód na odoslanie
                              Metóda: ZÍSKAŤ
                             Rozhranie: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=passenger&rand=randp&
                             Parametre:
                                      Žiadna
                             Return: Vráti binárny tok obrazu, rovnako ako overovací kód na prihlásenie
                     Po štvrté: Skontrolujte, či je možné potvrdenie príspevku
                             Metóda: POST
                              Rozhranie: https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
                              Parametre:
                                       cancel_flag:2
                                       bed_level_order_num:00000000000000000000000000000000
                                       passengerTicketStr: Typ sedadla, 0, typ lístka, meno, identita, telefón, N (ak ich je viac, oddelené čiarkou)
                                       oldPassengerStr: Meno, typ ID, ID číslo, typ používateľa
                                       randCode: Plánovaný overovací kód
                                       tour_flag:dc
                                       _json_att: Prázdny reťazec
                                       REPEAT_SUBMIT_TOKEN: Získaj to z predchádzajúceho kroku
                              Return: json formát na určenie, či je možné to commitovať
                    Po piate: Potvrďte odoslanie
                                Metóda: POST
                                Rozhranie: https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
                                Parametre:
   
                                       passengerTicketStr: Typ sedadla, 0, typ lístka, meno, identita, telefón, N (ak ich je viac, oddelené čiarkou)
                                       oldPassengerStr: Meno, typ ID, ID číslo, typ používateľa
                                       randCode: Plánovaný overovací kód
                                       purpose_codes: Krok 3, aby ste to získali
                                       key_check_isChange: Ibid
                                       leftTicketStr; Ibid
                                       train_locatio{filter}n; Ibid
                                       REPEAT_SUBMIT_TOKEN: Ibid
                                       _json_att: Prázdny reťazec   
                               Vráťte: json formát, zistite, či je odoslanie úspešné, vráťte čakaciu dobu a zavolajte krok 6 každé určité obdobie, aby ste vrátili výsledok spracovania
                     Šieste: Prieskum na výsledky odoslaných príspevkov
                               Metóda: ZÍSKAŤ
                               Rozhranie: https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?
                               Parametre:
   
                                       náhodné: Náhodné čísla
                                       tourFlag:dc   
                                       REPEAT_SUBMIT_TOKEN: Je tu tretia časť, ktorú treba získať
                                       _json_att: Prázdny reťazec   
                               Vráť: json formát, vráťte čas čakania, ak je čas čakania menší ako 0, získajte informácie o objednávke orderId, ak je väčší ako 0, pokračujte v dotazovaní
          5. Pýtajte sa na nedokončené objednávky
                 Metóda: POST
                 Rozhranie: https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete
                 Parametre:
                _json_att: Prázdny reťazec   
                Returns: JSON formát, obsahuje informácie o poradí a priamo analyzuje

           Keď už o tom hovoríme, 5 funkcií je v podstate predstavených, ale teraz sú zverejnené len na učenie sa ich používať a nebudú škodlivo napadnuté, navyše rozhranie webu 12306 sa veľmi často mení a rozhranie, ktoré je teraz zverejnené, môže byť zajtra zmenené, takže dôležité je naučiť sa získavať relevantné rozhrania a dáta a analyzovať z nich, aby ste získali príslušné parametre a zodpovedajúce výsledky. Tu používam hlavne firebug, nástroj na analýzu sietí, ktorý je súčasťou prehliadača Chrome, ako aj nástroje Fiddler a Wireshark, a návody na používanie súvisiacich nástrojov, stačí ich hľadať na internete.
            Nakoniec, sťažujme sa, webová stránka 12306 používa technológiu statického cachovania CDN, čo vedie k výberu zodpovedajúcich serverov podľa load balancing v rôznych regiónoch, šírky pásma a záťaže, teda existuje mnoho 12306 serverov po celej krajine. Každý používateľ môže pristupovať k možným serverom, ktoré sú odlišné, ale len statické stránky, js, css, obrázky atď., ale každý server priamo udržiava reláciu zdieľanú, teda ak sa prihlásite na jeden zo serverov, na iných serveroch Vyššie uvedené je tiež ekvivalentné pristátiu. Preto je najlepšie vedieť dynamicky vybrať server, aby boli časy cache aktuálne, stres minimálny a dáta viac v reálnom čase. V mojej implementácii, ak nedotazujete raz, zmeníte IP servera raz. Čo sa týka relevantnej technológie, prezradím ju neskôr. Ale obsah tohto článku je dostatočný na učenie. Konkrétnu IP adresu môžete vidieť v http://tool.chinaz.com/dns.




Predchádzajúci:{:1_3:} {:1_3:} Šťastný deň
Budúci:Ako JS kopíruje objekt?
Zverejnené 28. 9. 2017 9:19:34 |
Bude šéf zbierať lístky?
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com