Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 11838|Odpověď: 1

Rozhraní a datové formáty softwaru pro sběr vstupenek 12306

[Kopírovat odkaz]
Zveřejněno 27.09.2017 10:15:39 | | |

Pojďme rovnou k věci, zde se chci hlavně zaměřit na rozhraní a datové formáty současných funkcí 12306. Je hlavně rozdělen do pěti modulů: přihlášení, získávání kontaktů, kontrola tiketů, rezervace a dotazování nedokončených objednávek, u některých jiných rozhraní, která nejsou důležitá, můžete přímo ignorovat, například zjistit, zda je ověřovací kód správný, požádat o zbývající počet tiketů atd. Tento článek je napsán a můžete si ho sami prostudovat, pokud ho budete potřebovat.
       1. Přihlásit se
             Přihlášení slouží hlavně k získání relace a udržení komunikace se serverem. Existují dva hlavní kroky přihlášení
             Nejprve si získej ověřovací kód
                     Metoda: GET
                     Rozhraní: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=login&rand=sjrand&
                     Parametry: kopíruji, stejné
                     Zpět: Binární obrazový proud
             Druhé přihlášení
                    Metoda: POST
                    Rozhraní: https://kyfw.12306.cn/otn/login/loginAysnSuggest
                    Parametry: 1. loginUserDTO.user_name Uživatelské jméno
                               2. Ověřovací kód randCode
                               3. userDTO.password heslo
                     Vrací: json string, který může určit, zda je přihlášení úspěšné
        2. Získejte kontakty
                    Metoda: GET
                    Rozhraní: https://kyfw.12306.cn/otn/passengers/init
                    Parametry: Žádné
                    Return: html soubor, v němž najdete proměnnou, která je ve formátu json a lze ji parsovat do uživatelského objektu
        3. Kontrola vstupenek
                    Metoda: GET
                    Rozhraní: https://kyfw.12306.cn/otn/leftTicket/query?
                    Parametry: leftTicketDTO.train_date: Datum kontroly vstupenky
                               leftTicketDTO.from_station: Výchozí stanice (abecední kód)
                               leftTicketDTO.to_station: Cílová stanice (abecední kód)
                               purpose_codes: DOSPĚLÍ
                    Návrat: Vrací se do formátu JSON a přímo parsuje
         4. Rezervace
                   Jmenování je rozděleno do 6 kroků, jeden po druhém, vzájemně propojených
                   Za prvé: Předběžné podání
                            Metoda: POST
                            Uživatelské rozhraní: https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest
                            Parametr: secretStr: získáno z kontroly jízdenek (jeden pro každý vlak, pokaždé jiný, je třeba analyzovat v reálném čase)
                                      train_date: Datum rezervace
                                     back_train_date: Datum návratu
                                      tour_flag: DC
                                      purpose_codes: DOSPĚLÍ
                                      query_from_station_name: Odjezdová stanice
                                      query_to_station_name: Cílová stanice
                                      nedefinované: prázdný řetězec
                           Return: Vrátí formát JSON, aby zjistil, zda je odeslání úspěšné
                    Za druhé: Získejte odpovídající parametry
                            Metoda: POST
                            Uživatelské rozhraní: https://kyfw.12306.cn/otn/confirmPassenger/initDc
                             Parametry:
                              _json_att: Prázdný řetězec
                             Return: html soubor, užitečný při parsování globalRepeatSubmitToken v prvních řádcích a získání hodnoty proměnné ticketInfoForPassengerForm zespodu, je ve formátu json, ze kterého purpose_codes, key_check_isChange, leftTicketStr, train_locatio{filter} n pro přípravu na následující commity
                    Za třetí: Získejte kód pro ověření odeslání
                              Metoda: GET
                             Rozhraní: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=passenger&rand=randp&
                             Parametry:
                                      Žádné
                             Return: Vrátí binární tok obrazu, stejně jako ověřovací kód přihlášení
                     Za čtvrté: Zkontrolujte, zda lze příspěvek potvrdit
                             Metoda: POST
                              Rozhraní: https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
                              Parametry:
                                       cancel_flag:2
                                       bed_level_order_num:000000000000000000000000000000
                                       passengerTicketStr: Typ sedadla, 0, typ jízdenky, jméno, identita, telefon, N (pokud jich je více, odděleno čárkou)
                                       oldPassengerStr: Jméno, typ ID, ID číslo, uživatelský typ
                                       randCode: Plánovaný ověřovací kód
                                       tour_flag:dc
                                       _json_att: Prázdný řetězec
                                       REPEAT_SUBMIT_TOKEN: Vezměte to z předchozího kroku
                              Return: json formát pro určení, zda lze commitovat
                    Páté: Potvrdit podání
                                Metoda: POST
                                Rozhraní: https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
                                Parametry:
   
                                       passengerTicketStr: Typ sedadla, 0, typ jízdenky, jméno, identita, telefon, N (pokud jich je více, odděleno čárkou)
                                       oldPassengerStr: Jméno, typ ID, ID číslo, uživatelský typ
                                       randCode: Plánovaný ověřovací kód
                                       purpose_codes: Krok 3, jak to pochopit
                                       key_check_isChange: Totéž
                                       leftTicketStr; Totéž
                                       train_locatio{filter}n; Totéž
                                       REPEAT_SUBMIT_TOKEN: Totéž
                                       _json_att: Prázdný řetězec   
                               Vrať: json formát, určit, zda je odeslání úspěšné, vraťte čekací dobu a zavolejte krok 6 každé určité období, abyste vrátili výsledek zpracování
                     Šesté: Hlasujte o výsledky zasílání
                               Metoda: GET
                               Rozhraní: https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?
                               Parametry:
   
                                       náhodné: náhodná čísla
                                       tourFlag:dc   
                                       REPEAT_SUBMIT_TOKEN: Je tu třetí část, kterou je třeba získat
                                       _json_att: Prázdný řetězec   
                               Return: json format, vraťte čekací dobu, pokud je waitTime menší než 0, získejte order information orderId, pokud je větší než 0, pokračujte v dotazování
          5. Dotazujte se na nedokončené objednávky
                 Metoda: POST
                 Rozhraní: https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete
                 Parametry:
                _json_att: Prázdný řetězec   
                Returns: JSON formát, obsahuje informace o pořadí a přímo analyzuje

           Když už mluvíme o tom, 5 funkcí je v podstatě zavedeno, ale nyní je zveřejněno jen proto, aby se naučilo používat a nebude zlomyslně napadáno, navíc rozhraní webu 12306 se velmi často mění a nyní zveřejněné rozhraní může být zítra změněno, takže důležité je naučit se získávat relevantní rozhraní a data a analyzovat z dat, abyste získali odpovídající parametry a výsledky. Tady hlavně používám firebug, nástroj pro analýzu sítí, který je součástí prohlížeče Chrome, stejně jako nástroje Fiddler a Wireshark, a instrukce k používání souvisejících nástrojů, stačí je hledat na internetu.
            Nakonec si stěžujme, web 12306 používá technologii statického cachování CDN, což vede k výběru odpovídajících serverů podle load balancing v různých regionech, šířky pásma a zátěže, tedy že existuje mnoho serverů 12306 po celé zemi. Každý uživatel může přistupovat k různým serverům, ale pouze statické stránky a js, css a obrázky atd., ale každý server bude relaci přímo sdílet – pokud se přihlásíte na jeden ze serverů, na jiných serverech Výše uvedené je také ekvivalentní přistání. Je tedy nejlepší mít možnost dynamicky vybírat server, aby byly časy cache aktuální, stres minimální a data více v reálném čase. V mé implementaci, pokud nedotazujete jednou, změníte IP serveru jednou. Co se týče příslušné technologie, odhalím ji později. Ale obsah tohoto článku je dostatečný k učení. Konkrétní IP adresu můžete vidět v http://tool.chinaz.com/dns.




Předchozí:{:1_3:} {:1_3:} Šťastný den
Další:Jak js zkopíruje objekt?
Zveřejněno 28.09.2017 9:19:34 |
Bude šéf brát lístky?
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com