Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 11838|Resposta: 1

Interfaces e formatos de dados relacionados ao software de captura de bilhetes 12306

[Copiar link]
Publicado em 27/09/2017 10:15:39 | | |

Vamos direto ao ponto, aqui quero falar principalmente sobre as interfaces e formatos de dados das funções atuais do 12306. Ele é dividido principalmente em cinco módulos: login, obtenção de contatos, checagem de tickets, reserva e consulta de pedidos inacabados, pois para algumas outras interfaces que não são importantes, você pode ignorá-las diretamente, como detectar se o código de verificação está correto, solicitar o número restante de tickets, etc.; este artigo está escrito, e você pode estudá-lo por conta própria se precisar.
       1. Logar
             O login é principalmente para obter a sessão e manter a comunicação com o servidor. Existem dois passos principais para fazer login
             Primeiro, obtenha o código de verificação de login
                     Método: GET
                     Interface: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=login&rand=sjrand&
                     Parâmetros: copiado, o mesmo
                     Verso: Fluxo de imagem binária
             Segundo login
                    Método: POST
                    Interface: https://kyfw.12306.cn/otn/login/loginAysnSuggest
                    Parâmetros: 1. loginUserDTO.user_name Nome do usuário
                               2. código de verificação randCode
                               3. senha do usuárioDTO.senha
                     Retorna: json string, que pode determinar se o login é bem-sucedido
        2. Conseguir contatos
                    Método: GET
                    Interface: https://kyfw.12306.cn/otn/passengers/init
                    Parâmetros: Nenhum
                    Retorno: arquivo html, você pode encontrar uma variável nele, que está em formato json e pode ser processada em um objeto de usuário
        3. Verificação de bilhetes
                    Método: GET
                    Interface: https://kyfw.12306.cn/otn/leftTicket/query?
                    Parâmetros: leftTicketDTO.train_date: Data da verificação de ingressos
                               leftTicketDTO.from_station: Estação de Partida (Código Albético)
                               leftTicketDTO.to_station: Estação de destino (código alfabético)
                               purpose_codes:ADULTO
                    Retorno: Retorna ao formato JSON e analisa diretamente
         4. Reserva
                   A nomeação é dividida em 6 etapas, uma a uma, inter-relacionadas
                   Primeiro: Pré-submissão
                            Método: POST
                            Interface: https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest
                            Parâmetro: secretStr: obtido na verificação de bilhetes (um para cada trem, diferente a cada vez, precisa ser analisado em tempo real)
                                      train_date: Data de reserva
                                     back_train_date: Data de retorno
                                      tour_flag: DC
                                      purpose_codes:ADULTO
                                      query_from_station_name: Estação de partida
                                      query_to_station_name: Estação de destino
                                      indefinida: uma cadeia vazia
                           Retorno: Retorna o formato JSON para determinar se a submissão é bem-sucedida
                    Segundo: Obter os parâmetros correspondentes
                            Método: POST
                            Interface: https://kyfw.12306.cn/otn/confirmPassenger/initDc
                             Parâmetros:
                              _json_att: Fio vazio
                             Return: arquivo html, útil em análise de globalRepeatSubmitToken nas primeiras linhas, e obtendo o valor da variável ticketInfoForPassengerForm de abaixo, está em formato json, a partir do qual purpose_codes, key_check_isChange, leftTicketStr, train_locatio{filter} n para preparar os seguintes commits
                    Terceiro: Obtenha o código de verificação do envio
                              Método: GET
                             Interface: https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=passenger&rand=randp&
                             Parâmetros:
                                      Nenhum
                             Retorno: Retorna o fluxo binário de imagem, assim como o código de verificação de login
                     Quarto: Verifique se a submissão pode ser confirmada
                             Método: POST
                              Interface: https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
                              Parâmetros:
                                       cancel_flag:2
                                       bed_level_order_num:00000000000000000000000000000000
                                       passageirBilheteStr: Tipo de assento, 0, tipo de bilhete, nome, identidade, telefone, N (se houver mais de um, separados por vírgula)
                                       oldPassengerStr: Nome, Tipo de ID, Número de ID, Tipo de Usuário
                                       randCode: Código de verificação programada
                                       tour_flag:dc
                                       _json_att: Fio vazio
                                       REPEAT_SUBMIT_TOKEN: Obtenha do passo anterior
                              Retorno: formato json para determinar se pode ser comprometido
                    Quinto: Confirmar submissão
                                Método: POST
                                Interface: https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
                                Parâmetros:
   
                                       passageirBilheteStr: Tipo de assento, 0, tipo de bilhete, nome, identidade, telefone, N (se houver mais de um, separados por vírgula)
                                       oldPassengerStr: Nome, Tipo de ID, Número de ID, Tipo de Usuário
                                       randCode: Código de verificação programada
                                       purpose_codes: Passo 3 para conseguir
                                       key_check_isChange: Ibid
                                       leftTicketStr; Ibid
                                       train_locatio{filter}n; Ibid
                                       REPEAT_SUBMIT_TOKEN: Ibid
                                       _json_att: Fio vazio   
                               Retorno: formato json, determinar se a submissão foi bem-sucedida, devolver o tempo de espera e chamar a etapa 6 a cada certo período para devolver o resultado do processamento
                     Sexto: Enquete para obter os resultados das submissões
                               Método: GET
                               Interface: https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?
                               Parâmetros:
   
                                       aleatório: Números aleatórios
                                       Bandeira da Turnê: DC   
                                       REPEAT_SUBMIT_TOKEN: Há uma terceira parte a ser obtida
                                       _json_att: Fio vazio   
                               Retornar: formato json, devolver o tempo de espera, se o tempo de espera for menor que 0, obtenha a informação do pedido orderId, se for maior que 0, continue a pesquisa
          5. Perguntar sobre pedidos inacabados
                 Método: POST
                 Interface: https://kyfw.12306.cn/otn/queryOrder/queryMyOrderNoComplete
                 Parâmetros:
                _json_att: Fio vazio   
                Retorna: formato JSON, contém informações de ordem e analisa diretamente

           Falando nisso, as 5 funções basicamente foram introduzidas, mas agora estão postadas apenas para aprender a usar, e não serão atacadas maliciosamente; além disso, a interface do site 12306 muda com muita frequência, e a interface postada agora pode ser alterada amanhã, então o importante é aprender a pegar interfaces e dados relevantes e analisar a partir desses dados para obter os parâmetros correspondentes e resultados correspondentes. Aqui eu uso principalmente o Firebug, a ferramenta de análise de rede que vem com o navegador Chrome, além das ferramentas Fiddler e Wireshark, e as instruções para usar ferramentas relacionadas, é só procurar na Internet.
            Por fim, vamos reclamar, o site 12306 usa tecnologia de cache estático CDN, o que leva à seleção dos servidores correspondentes de acordo com balanceamento de carga em diferentes regiões, largura de banda e carga, ou seja, existem muitos servidores 12306 pelo país. Cada usuário pode acessar os servidores possíveis são diferentes, mas apenas páginas estáticas e js, css e imagens, etc., mas cada servidor manterá a sessão diretamente compartilhada, ou seja, se você fizer login em um dos servidores, em outros servidores O que foi dito acima também equivale a ter desembarcado. Portanto, é melhor poder escolher um servidor dinamicamente para que os tempos de cache estejam atualizados, o estresse seja mínimo e os dados mais em tempo real. Na minha implementação, se você não fizer consulta uma vez, você mudará o IP do servidor uma vez. Quanto à tecnologia relevante, vou revelá-la depois. Mas o conteúdo deste artigo é suficiente para aprender. Você pode ver o endereço IP específico no http://tool.chinaz.com/dns.




Anterior:{:1_3:} {:1_3:} Dia feliz
Próximo:Como o JS copia um objeto?
Publicado em 28/09/2017 09:19:34 |
O chefe vai pegar ingressos?
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com