Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 11838|Svare: 1

Grensesnitt og dataformater relatert til 12306 ticket-innsamlingsprogramvare

[Kopier lenke]
Publisert på 27.09.2017 10:15:39 | | |

La oss gå rett på sak, her vil jeg hovedsakelig snakke om grensesnittene og dataformatene til de nåværende 12306-funksjonene. Den er hovedsakelig delt inn i fem moduler: innlogging, få kontakter, sjekke billetter, bestille og sende forespørsler om uferdige bestillinger. For noen andre grensesnitt som ikke er viktige, kan du ignorere dem direkte, som å oppdage om verifiseringskoden er korrekt, be om gjenværende antall saker, osv., denne artikkelen er skrevet, og du kan studere den selv hvis du trenger det.
       1. Logg inn
             Innlogging er hovedsakelig for å få sesjonen og opprettholde kommunikasjon med serveren. Det er to hovedtrinn for å logge inn
             Først, få innloggingsverifiseringskoden
                     Metode: GET
                     Grensesnitt: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=login&rand=sjrand&
                     Parametere: kopi, det samme
                     Bak: Binær bildestrøm
             Andre innlogging
                    Metode: POST
                    Grensesnitt: https://kyfw.12306.cn/otn/login/loginAysnSuggest
                    Parametere: 1. loginUserDTO.user_name Brukernavn
                               2. randCode-verifiseringskode
                               3. userDTO.password-passord
                     Returnerer: json-streng, som kan avgjøre om innloggingen er vellykket
        2. Få kontakter
                    Metode: GET
                    Grensesnitt: https://kyfw.12306.cn/otn/passengers/init
                    Parametere: Ingen
                    Return: html-fil, du kan finne en variabel i den, som er i json-format og kan parses inn i et brukerobjekt
        3. Billettkontroll
                    Metode: GET
                    Grensesnitt: https://kyfw.12306.cn/otn/leftTicket/query?
                    Parametere: leftTicketDTO.train_date: Billettsjekkdato
                               leftTicketDTO.from_station: Startstasjon (alfabetisk kode)
                               leftTicketDTO.to_station: Destinasjonsstasjon (alfabetkode)
                               purpose_codes:VOKSEN
                    Return: Går tilbake til JSON-format og parser direkte
         4. Reservasjon
                   Utnevnelsen er delt inn i 6 trinn, ett etter ett, som er sammenhengende
                   Først: Forhåndsinnsending
                            Metode: POST
                            Grensesnitt: https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest
                            Parameter: secretStr: hentes ved billettkontroll (én for hvert tog, og forskjellig hver gang, må analyseres i sanntid)
                                      train_date: Bestillingsdato
                                     back_train_date: Returdato
                                      tour_flag: DC
                                      purpose_codes:VOKSEN
                                      query_from_station_name: Avgangsstasjon
                                      query_to_station_name: Destinasjonsstasjon
                                      Udefinert: en tom streng
                           Return: Returnerer JSON-formatet for å avgjøre om innsendingen er vellykket
                    For det andre: Få de tilsvarende parameterne
                            Metode: POST
                            Grensesnitt: https://kyfw.12306.cn/otn/confirmPassenger/initDc
                             Parametere:
                              _json_att: Tom streng
                             Return: html-fil, nyttig under parsing av globalRepeatSubmitToken i de første linjene, og for å hente verdien til ticketInfoForPassengerForm-variabelen nedenfra, er i json-format, hvorfra purpose_codes, key_check_isChange, leftTicketStr, train_locatio{filter} n for å forberede følgende commits
                    For det tredje: Få verifiseringskoden for innsendingen
                              Metode: GET
                             Grensesnitt: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=passenger&rand=randp&
                             Parametere:
                                      Ingen
                             Return: Returnerer bilde-binærstrømmen, akkurat som innloggingsverifiseringskoden
                     For det fjerde: Sjekk om innsendingen kan bekreftes
                             Metode: POST
                              Grensesnitt: https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
                              Parametere:
                                       cancel_flag:2
                                       bed_level_order_num:0000000000000000000000000000000
                                       passasjerTicketStr: Setetype, 0, billetttype, navn, identitet, telefon, N (hvis det er flere, adskilt med komma)
                                       oldPassengerStr: Navn, ID-type, ID-nummer, brukertype
                                       randCode: Planlagt verifiseringskode
                                       tour_flag:DC
                                       _json_att: Tom streng
                                       REPEAT_SUBMIT_TOKEN: Hent det fra forrige steg
                              Return: json-format for å avgjøre om den kan gjennomføres
                    For det femte: Bekreft innsending
                                Metode: POST
                                Grensesnitt: https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
                                Parametere:
   
                                       passasjerTicketStr: Setetype, 0, billetttype, navn, identitet, telefon, N (hvis det er flere, adskilt med komma)
                                       oldPassengerStr: Navn, ID-type, ID-nummer, brukertype
                                       randCode: Planlagt verifiseringskode
                                       purpose_codes: Trinn 3 for å få det
                                       key_check_isChange: Ibid
                                       leftTicketStr; Ibid
                                       train_locatio{filter}n; Ibid
                                       REPEAT_SUBMIT_TOKEN: Ibid
                                       _json_att: Tom streng   
                               Returner: json-format, avgjør om innsendingen er vellykket, returner ventetiden, og kaller trinn 6 hver viss periode for å returnere behandlingsresultatet
                     For det sjette: Avstemning for å få resultatene av innsendingene
                               Metode: GET
                               Grensesnitt: https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?
                               Parametere:
   
                                       tilfeldige: Tilfeldige tall
                                       tourFlag:dc   
                                       REPEAT_SUBMIT_TOKEN: Det er en tredje del å skaffe
                                       _json_att: Tom streng   
                               Return: json-format, returner ventetiden, hvis ventetiden er mindre enn 0, hent ordreinformasjonen orderId, hvis den er større enn 0, fortsett pollingen
          5. Spørre om uferdige ordre
                 Metode: POST
                 Grensesnitt: https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete
                 Parametere:
                _json_att: Tom streng   
                Returnerer: JSON-format, inneholder ordreinformasjon og parser direkte

           Når vi først snakker om det, er de 5 funksjonene i bunn og grunn introdusert, men nå er det bare lagt ut for å lære å bruke, og vil ikke bli ondsinnet angrepet, dessuten endres grensesnittet til 12306-nettstedet veldig ofte, og grensesnittet som legges ut nå kan endres i morgen, så det viktige er å lære å hente relevante grensesnitt og data, og analysere dataene for å få tilsvarende parametere og resultater. Her bruker jeg hovedsakelig Firebug, nettverksanalyseverktøyet som følger med Chrom-nettleseren, samt Fiddler- og Wireshark-verktøyene, og instruksjonene for bruk av relaterte verktøy, bare søk etter det på Internett.
            Til slutt, la oss klage: 12306-nettsiden bruker CDN-statisk caching-teknologi, noe som vil føre til valg av tilsvarende servere basert på lastbalansering i ulike regioner, båndbredde og belastning, det vil si at det finnes mange 12306-servere over hele landet. Hver bruker kan få tilgang til de mulige serverne, men bare statiske sider og js, css og bilder, osv., men hver server vil direkte dele sesjonen, det vil si hvis du logger inn på en av serverne, på andre servere Det ovennevnte tilsvarer også å ha landet. Derfor er det best å kunne velge server dynamisk slik at cache-tidene er oppdaterte, stresset minimalt, og dataene er mer sanntids. I min implementering, hvis du ikke spør én gang, vil du endre server-IP-en én gang. Når det gjelder relevant teknologi, vil jeg avsløre den senere. Men innholdet i denne artikkelen er nok til å lære. Du kan se den spesifikke IP-adressen i http://tool.chinaz.com/dns.




Foregående:{:1_3:} {:1_3:} Lykkelig dag
Neste:Hvordan kopierer JS et objekt?
Publisert på 28.09.2017 09:19:34 |
Skal sjefen hente billetter?
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com