Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 11838|Risposta: 1

Interfacce e formati dati relativi al software di raccolta dei biglietti 12306

[Copiato link]
Pubblicato su 27/09/2017 10:15:39 | | |

Andiamo dritti al punto, qui voglio principalmente parlare delle interfacce e dei formati dati delle attuali funzioni 12306. È principalmente suddiviso in cinque moduli: accesso, ottenere contatti, controllare i ticket, prenotare e interrogare ordini incompleti; per alcune altre interfacce non importanti, puoi ignorarle direttamente, come rilevare se il codice di verifica è corretto, richiedere il numero rimanente di ticket, ecc.; questo articolo è scritto e puoi studiarlo da solo se necessario.
       1. Accesso
             Il login serve principalmente a ottenere la sessione e mantenere la comunicazione con il server. Ci sono due passaggi principali per accedere
             Per prima cosa, ottieni il codice di verifica del login
                     Metodo: GET
                     Interfaccia: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=login&rand=sjrand&
                     Parametri: ricevuto, identico
                     Retro: Flusso di immagini binarie
             Secondo accesso
                    Metodo: POST
                    Interfaccia: https://kyfw.12306.cn/otn/login/loginAysnSuggest
                    Parametri: 1. loginUserDTO.user_name Nome utente
                               2. codice di verifica randCode
                               3. userDTO.password password
                     Restituisce: stringa json, che può determinare se il login è riuscito
        2. Procurarsi contatti
                    Metodo: GET
                    Interfaccia: https://kyfw.12306.cn/otn/passengers/init
                    Parametri: Nessuno
                    Return: html, puoi trovare una variabile in esso, che è in formato json e può essere analizzata in un oggetto utente
        3. Controllo dei biglietti
                    Metodo: GET
                    Interfaccia: https://kyfw.12306.cn/otn/leftTicket/query?
                    Parametri: leftTicketDTO.train_date: Data di controllo dei biglietti
                               leftTicketDTO.from_station: Stazione di Partenza (Codice Alfabetico)
                               leftTicketDTO.to_station: Stazione di destinazione (codice alfabetico)
                               purpose_codes:ADULTO
                    Ritorno: Ritorno al formato JSON e analisi diretta
         4. Prenotazione
                   La nomina è suddivisa in 6 fasi, una per una, intercorrelate
                   Primo: Pre-presentazione
                            Metodo: POST
                            Interfaccia: https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest
                            Parametro: secretStr: ottenuto dal controllo dei biglietti (uno per ogni treno, e diverso ogni volta, deve essere analizzato in tempo reale)
                                      train_date: Data di prenotazione
                                     back_train_date: Data di ritorno
                                      tour_flag: DC
                                      purpose_codes:ADULTO
                                      query_from_station_name: Stazione di partenza
                                      query_to_station_name: Stazione di destinazione
                                      indefinito: una stringa vuota
                           Return: Restituisce il formato JSON per determinare se la presentazione abbia successo
                    Secondo: Ottenere i parametri corrispondenti
                            Metodo: POST
                            Interfaccia: https://kyfw.12306.cn/otn/confirmPassenger/initDc
                             Parametri:
                              _json_att: Cordo vuoto
                             Return: html, utile sotto la visualizzazione di globalRepeatSubmitToken nelle prime righe, e ottenendo il valore della variabile ticketInfoForPassengerForm da sotto, è in formato json, da cui purpose_codes, key_check_isChange, leftTicketStr, train_locatio{filter} n per prepararsi ai seguenti commit
                    Terzo: Ottieni il codice di verifica per la presentazione
                              Metodo: GET
                             Interfaccia: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=passenger&rand=randp&
                             Parametri:
                                      Nessuna
                             Ritorno: restituisce il flusso binario dell'immagine, proprio come il codice di verifica dell'accesso
                     Quarto: Controlla se la segnalazione può essere confermata
                             Metodo: POST
                              Interfaccia: https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
                              Parametri:
                                       cancel_flag:2
                                       bed_level_order_num:00000000000000000000000000000000000
                                       passengerTicketStr: Tipo di sedile, 0, tipo di biglietto, nome, identità, telefono, N (se ce ne sono più di uno, separati da una virgola)
                                       oldPassengerStr: Nome, Tipo ID, Numero ID, Tipo utente
                                       randCode: Codice di verifica programmata
                                       tour_flag:dc
                                       _json_att: Cordo vuoto
                                       REPEAT_SUBMIT_TOKEN: Prendilo dal passaggio precedente
                              Ritorno: formato json per determinare se può essere commesso
                    Quinto: confermare la presentazione
                                Metodo: POST
                                Interfaccia: https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
                                Parametri:
   
                                       passengerTicketStr: Tipo di sedile, 0, tipo di biglietto, nome, identità, telefono, N (se ce ne sono più di uno, separati da una virgola)
                                       oldPassengerStr: Nome, Tipo ID, Numero ID, Tipo utente
                                       randCode: Codice di verifica programmata
                                       purpose_codes: Passo 3 per ottenerlo
                                       key_check_isChange: Ibid
                                       leftTicketStr; Ibid
                                       train_locatio{filter}n; Ibid
                                       REPEAT_SUBMIT_TOKEN: Ibid
                                       _json_att: Cordo vuoto   
                               Return: formato json, determinare se la presentazione ha successo, restituire il tempo di attesa e chiamare il passaggio 6 ogni certo periodo per restituire il risultato dell'elaborazione
                     Sesto: Sondaggio per ottenere i risultati delle proposte
                               Metodo: GET
                               Interfaccia: https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?
                               Parametri:
   
                                       casuale: Numeri casuali
                                       tourBandiera: dc   
                                       REPEAT_SUBMIT_TOKEN: C'è una terza parte da ottenere
                                       _json_att: Cordo vuoto   
                               Return: json format, restituisci il tempo di attesa, se waitTime è inferiore a 0, ottieni l'informazione dell'ordine orderId, se è superiore a 0, continua il polling
          5. Informarsi sugli ordini incompleti
                 Metodo: POST
                 Interfaccia: https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete
                 Parametri:
                _json_att: Cordo vuoto   
                Ritorni: formato JSON, contiene informazioni sull'ordine e analizza direttamente

           A proposito, le 5 funzioni sono fondamentalmente introdotte, ma ora sono pubblicate solo per imparare a usarle e non saranno attaccate in modo malizioso; inoltre, l'interfaccia del sito 12306 cambia molto frequentemente, e l'interfaccia pubblicata ora potrebbe essere modificata domani, quindi la cosa importante è imparare a raccogliere interfacce e dati rilevanti e analizzarli per ottenere i parametri corrispondenti e i risultati corrispondenti. Qui uso principalmente Firebug, lo strumento di analisi di rete fornito con il browser Chrome, così come gli strumenti Fiddler e Wireshark, e le istruzioni per l'uso degli strumenti correlati, cercalo su Internet.
            Infine, lamentiamoci, il sito 12306 utilizza la tecnologia di cache statica CDN, che permette la selezione dei server corrispondenti in base al bilanciamento del carico in diverse regioni, larghezza di banda e carico, cioè ci sono molti server 12306 in tutto il paese. Ogni utente può accedere ai server possibili sono diversi, ma solo pagine statiche e js, css e immagini, ecc., ma ogni server manterrà direttamente la sessione condivisa, cioè, se accedi a uno dei server, su altri server Quanto sopra è anche equivalente all'atterraggio. Quindi è meglio poter scegliere un server dinamicamente in modo che i tempi di cache siano aggiornati, lo stress sia minimo e i dati siano più in tempo reale. Nella mia implementazione, se non fai query una volta, cambierai l'IP del server una volta. Per quanto riguarda la tecnologia rilevante, la rivelerò più avanti. Ma il contenuto di questo articolo è sufficiente per imparare. Puoi vedere l'indirizzo IP specifico nel http://tool.chinaz.com/dns.




Precedente:{:1_3:} {:1_3:} Giornata felice
Prossimo:Come copia JS un oggetto?
Pubblicato su 28/09/2017 09:19:34 |
Il capo prenderà i biglietti?
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com