PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → [WM19] TimeOut en en cas de HTTPRequete trop long
[WM19] TimeOut en en cas de HTTPRequete trop long
Débuté par Dominique PAUL, 29 sep. 2014 12:57 - 3 réponses
Membre enregistré
8 messages
Posté le 29 septembre 2014 - 12:57
Bonjour,

Pour une application Android, j'ai besoin d'aller chercher des informations contenues dans une page Web.

Pour ce faire, dans un Thread, j'utilise la fonction HTTPRequete suivi de HTTPDonneRésultat pour la récupération du code de la page Web.

Tout fonctionne correctement, hormis que lorsque je suis sous couverture Internet très faible et très lente, l'application reste bloquée pendant ce traitement, et parfois très longtemps.

Quelqu'un a t'il une piste, ou connait t'il un moyen de sortir de HTTPRequete lorsque la connexion est trop faible, et principalement lorsque le traitement dure trop longtemps. Une sorte de TimeOut.

Si la connexion est trop lente, je souhaiterai sortir du traitement dans un temps raisonable, et afficher un message à l'utilisateur pour l’informer que la connexion Internet ne répond pas.

Merci d'avance à celui ou celle qui pourra m'aider.
Posté le 29 septembre 2014 - 14:36
Bonjour,

Vous avez la fonction HTTPTimeOut qui permet de gérer la durée maximum de la requête.
Code a ajouter juste avant le HTTPRequête, associé a la fonction InternetConnecté, ça devrait aller.

SI PAS InternetConnecté() ALORS Info("Vous n'êtes pas connecté à internet") ; RETOUR
sRes est une chaîne
HTTPTimeOut(10000) // 10 secondes
SI HTTPRequête(sUrl) ALORS
sRes = HTTPDonneRésultat(httpRésultat)
SINON
sRes = ErreurInfo(errCode)
FIN


Sinon, à tester, mais en code WLanguage, lorsque un httpRequête est en cours, sil on en passe un deuxième, il arrête le premier, donc un simple httpRequete("www.google.fr") dans un autre thread peut faire l'affaire.
J'imagine un httpjauge avec dans la procédure de la jauge un test d'un booleen global.
tant que le booleen = faux, on continue..... des que l'utilisateur presse un bouton, le booleen passe a vrai et dans la procédure, cela appel un httprequete(www.google.fr) qui arretera le premier et sortira de la boucle.

Bon dev.
Posté le 29 septembre 2014 - 14:52
Bonjour Dominique

HTTPTimeOut?

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXReplication, votre système de réplication open source est
disponible sur mon site web !!!
WXShowroom.com : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 9/29/2014 4:57 AM, Dominique PAUL wrote:
Bonjour,

Pour une application Android, j'ai besoin d'aller chercher des
informations contenues dans une page Web.

Pour ce faire, dans un Thread, j'utilise la fonction HTTPRequete suivi
de HTTPDonneRésultat pour la récupération du code de la page Web.

Tout fonctionne correctement, hormis que lorsque je suis sous couverture
Internet très faible et très lente, l'application reste bloquée pendant
ce traitement, et parfois très longtemps.

Quelqu'un a t'il une piste, ou connait t'il un moyen de sortir de
HTTPRequete lorsque la connexion est trop faible, et principalement
lorsque le traitement dure trop longtemps. Une sorte de TimeOut.

Si la connexion est trop lente, je souhaiterai sortir du traitement dans
un temps raisonable, et afficher un message à l'utilisateur pour
l’informer que la connexion Internet ne répond pas.

Merci d'avance à celui ou celle qui pourra m'aider.
Membre enregistré
3 651 messages
Popularité : +175 (223 votes)
Posté le 05 décembre 2014 - 01:08
Ont le même problème

Je suis maintenant la conception Radio Taxi prêt pour Android et iOS.

Dans iOS correct réussi à faire mon MapAddItinerary utilisant le marché et l'itinéraire de Google Maps interprétation points xml de polyligne. Le temps défini dans HTTPTimeOut se produit correctement et sans arrêter l'application.

Mais Android ne est pas bon à rien du HTTPTimeOut-il pas de poursuivre la recherche attire application ... dans toutes les applications qui ont l'utilisation de la serrure HttpRequest Android ... cette fois avec une boucle infinie devrait fonctionner HTTPTimeOut.

Je pense que beaucoup de grogne Android arrêt de l'application de répondre ou accident ... la raison en est que le HTTPTimeOut ne fonctionne pas sur Android ... doivent avoir une commande d'abandon dans les cas où le signal est erronée ... ou serveur indisponible ... ou non signé 3g 4g bord ou wifi échoue ... demander une révision de la HttpRequest et HTTPTimeOut de donner à ces exceptions se produisent Je ai déjà envoyé à l'assistance gratuite mais jusqu'ici, je ne étais pas satisfait ... l'erreur est grave pour moi ces deux commandes . Dans HTTPDonneRésultat retour sur iOS vient en chinois et Android est correct Je ai déjà envoyé la suggestion de soutenir le libre comme correcte.

Désolé pour envoyer ce message à vous, ce est qu'il a pris moi dormir et je ai entendu des plaintes ... Je pense qu'avoir une révision dans ces trois commandes de nombreux clients étaient satisfaits de l'outil. Si je avais que je me lève le code comme il l'a fait à Clarion moi corrigée mais pas tengo comment faire cela dans WINDEV Mobile.

Je demande un panier plein de ces informations car elles sont le résultat de nombreux tests.

PS Je aimerais rejoindre l'équipe ... PCSoft avoir l'occasion est disponible pour aller en France.

Comme il ne avait pour le moment.

Cordialement

Adriano Boller