IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2017
    Messages
    971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2017
    Messages : 971
    Points : 3 428
    Points
    3 428
    Par défaut [REST] Peut-on modifier le timeout qui se déclenche si connexion impossible?
    Bonjour à tous,

    J'ai une app pour Android développée avec Rio qui se connecte à un serveur via REST.

    Si le serveur est hors service, l'app reste "gelée" jusqu'à ce qu'une exception "java.net.SocketTimeoutException: failed to connect to ... after 30000ms" se déclenche après 30 secondes!


    Est-il possible de régler ce délai de 30 secondes pour que ce timeout soit plus court? Depuis l'app? Au niveau du serveur?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    12 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juillet 2006
    Messages : 12 032
    Points : 21 133
    Points
    21 133
    Par défaut
    TRESTClient.ReadTimeout ?
    TRESTClient.ConnectTimeout ?

    Un TThread pour ne pas bloquer le Main
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2017
    Messages
    971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2017
    Messages : 971
    Points : 3 428
    Points
    3 428
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    TRESTClient.ReadTimeout ?
    TRESTClient.ConnectTimeout ?

    Un TThread pour ne pas bloquer le Main
    Merci pour l'info, à la lecture de la description de REST.Client.TCustomRESTClient.ConnectTimeout dans la doc Embarcadero, on a un "property ConnectTimeout: Integer read GetConnectTimeout write SetConnectTimeout default 30000;"

    Comme trop souvent avec Embarcadero, on a droit à la phrase magique "Embarcadero Technologies ne possède pas d'informations supplémentaires pour le moment. Veuillez nous aider à documenter cette rubrique en utilisant la page Discussion ! " Vous pouvez pas savoir à quel point cela m'énerve de lire à longueur de journée cette phrase... J'ai chaque fois l'impression d'être pris pour un c...

    On ne peut donc pas être sûr de ce que l'on peut en faire, mais j'ai bon espoir que je puisse régler mon problème par ce biais vu que le "default 30000" pourrait bien correspondre à mes 30 sec de timeout (30 sec=30000 millisec).

    Merci à OVH... L'incendie de ses data centers auront permis de mettre en évidence une faiblesse dans nos app...

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    12 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juillet 2006
    Messages : 12 032
    Points : 21 133
    Points
    21 133
    Par défaut
    Citation Envoyé par Anselme45 Voir le message
    "Embarcadero Technologies ne possède pas d'informations supplémentaires pour le moment. Veuillez nous aider à documenter cette rubrique en utilisant la page Discussion ! "
    Après comme presque personne ne fait l'effort de lire la documentation et encore moins de chercher, ça doit les faire chier d'écrire un blabla que personne ne lit ... du coup, le forum est là pour apporter la réponse
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2017
    Messages
    971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2017
    Messages : 971
    Points : 3 428
    Points
    3 428
    Par défaut
    La solution est donc simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RESTRequest1.Timeout:=10000;
    pour diminuer le délai par défaut de 30 secondes à 10 secondes.

    A remarquer, qu'il y a un bug connu sur certaines anciennes versions de Delphi qui empêchait le réglage de la valeur par défaut du timeout (le bug a été fixé depuis la version 10.1 Berlin).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/08/2015, 01h26
  2. Peut-on modifier le titre de l'alert
    Par MokhTelnet dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 17/05/2010, 10h46
  3. Réponses: 1
    Dernier message: 16/11/2007, 10h28
  4. Réponses: 1
    Dernier message: 27/05/2005, 09h52
  5. Réponses: 16
    Dernier message: 18/07/2003, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo