2013-10-19 12 views
5

Invio i dati al server utilizzando il post HTTP e l'esito positivo è stato generato sul server. Ora tra l'invio dei dati e l'attesa per la risposta del server, improvvisamente a causa di problemi di rete il mio dispositivo Android perde la connessione a Internet. Nel dispositivo m in grado di mostrare una finestra di avviso di connessione persa, ma sul lato server i dati sono già stati elaborati e sono stati aggiornati nel database cioè server MySQL Ma il mio dispositivo Android non conosce questo bcoz fino a quando non ha ricevuto alcuna risposta dal server . Come risolverlo.Cosa fare quando Http Post è stato completato con successo e in attesa di risposta alla connettività Internet persa?

Se si può fare sul lato server o nell'app per Android e come?

Come il server saprebbe che il telefono Android non riceve la risposta fino ad ora?

Qualsiasi idea .. In attesa della risposta ???

+0

hai ottenuto un'eccezione quando hai perso la connettività? – Raghunandan

+0

Non andare per eccezione .. Ho perso il dialogo per la connettività. –

+0

cosa è successo quando hai perso la connettività in mezzo quando stavi postando (dati completi non pubblicati). – Raghunandan

risposta

3

Per ciascuna richiesta che viene inviato dal dispositivo al server si dovrebbe generare ID univoco (controllare GUID per esempio)

quindi si invia richiesta con questo ID al server, se la connessione ha perso - cercando di inviare nuovamente con la stesso ID

sul lato server è necessario implementare controllo: se la query con ID è stato elaborato/inprocess/nuova

+0

Ok .. First Time Request + Id è stato lanciato correttamente. Quindi inviare di nuovo il req creare confusione sul lato server. Quindi, ancora una volta la mia ricerca di richiesta duplicata? In che modo il server rileva le richieste di ripetizione dal client quando il server ha ricevuto correttamente la prima richiesta? –

+0

@subhalaxminayak controlla la mia terza frase in risposta –

+0

Se verifica la richiesta, troverà quella richiesta pronta per l'elaborazione. che restituirà di nuovo la stessa risposta per quel particolare ID o questo può essere gestito semplicemente restituendo la stessa risposta al client. Ho ragione ?? –

3

GUID: identificatore univoco globale.

Viene creato automaticamente. I GUID vengono generalmente memorizzati come valori a 128 bit e vengono comunemente visualizzati come 32 cifre esadecimali con gruppi separati da trattini, come {21EC2020-3AEA-1069-A2DD-08002B30309D} I GUID generati da numeri casuali contengono talvolta 6 bit fissi che indicano che sono casuali e 122 bit casuali; il numero totale di tali GUID univoci è 2122 o 5.3 × 1036.

Questo numero è così grande che la probabilità che lo stesso numero venga generato casualmente due volte è trascurabile; tuttavia le altre versioni GUID presentano proprietà e probabilità di univocità diverse, che vanno dall'unicità garantita alla probabile non univocità. Assumendo una probabilità uniforme per semplicità, la probabilità di un duplicato sarebbe di circa il 50% se ogni persona al mondo possiede 600 milioni di GUID.