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

Android Discussion :

App android fonctionne avec WIFI mais pas 3G


Sujet :

Android

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut App android fonctionne avec WIFI mais pas 3G
    Bonjour,

    Après une recherche sur notre ami google je n'ai pas trouvé de réponse à mon problème, je compte sur vous pour un petit coup de main ^^

    Alors je développe une application android en lien avec un serveur ASP.NET.
    Je communique avec ce dernier en utilisant KSOAP2.

    Tout se passe très bien tant que je suis en WIFI, cependant lorsque je passe en 3G je me cogne une erreur de socket à savoir que je ne réussi plus à atteindre mon serveur.

    Voici la partie du code qui plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    //préparation de la requete
            enveloppe.setOutputSoapObject(request);
            HttpTransportSE androidHttpTransport = new HttpTransportSE(aURLSERVICE);
     
            androidHttpTransport.debug = true;
            String soapaction = aNAMESPACE+IDENTIFICATION;
     
            SoapObject reponse = null;
            try 
            {
            	//appel au service
    			androidHttpTransport.call(soapaction, enveloppe);
     
    			 //retour du resultat
    	        reponse = (SoapObject)enveloppe.getResponse();        
    		}
            catch (IOException e) 
    		{
            	//erreur de connexion
    			e.printStackTrace();
    		}
    		catch (XmlPullParserException e)
    		{
    			//erreur
    			e.printStackTrace();
    		}
     
    		if(reponse !=null)
    		{
    			this.parseReponse(reponse);
    		}
    	}
    Bien je ne pense pas être avoir été très précis, mais si une âme charitable voulait bien me prêter main forte ^^

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Remplacer les e.printStackTrace() par Log.e(TAG,"Message ",e);

    par exemple au lieu du code ci-dessus en utilisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
            enveloppe.setOutputSoapObject(request);
            HttpTransportSE androidHttpTransport = new HttpTransportSE(aURLSERVICE);
     
            androidHttpTransport.debug = true;
            String soapaction = aNAMESPACE+IDENTIFICATION;
     
            try {
                    //appel au service
                    androidHttpTransport.call(soapaction, enveloppe);
     
                    //retour du resultat
    	        SoapObject reponse = (SoapObject)enveloppe.getResponse();
     
                    //on parse la réponse (pas la peine de le faire en dehors du try....)
                    parseResponse(response);     
            } catch (Exception e) {
            	// vu qu'on fait la même chose dans tous les cas, pas la peine de s'embêter !
                    Log.e("SOAP","Soap access error",e);
            }
    Déjà on aura une idée de l'erreur et du problème... Il est possible que l'accès "INTERNET" n'ai pas été requis dans le manifest !
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci de m'aider

    Alors l'exception que je prend c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.net.SocketTimeoutException: failed to connect to mon serveur/mon IP serveur (port 80) after 60000ms
    et j'ai bien mis la permission internet dans le manifeste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <uses-permission android:name="android.permission.INTERNET" />

  4. #4
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Donc c'est un problème d'accès IP...

    Firewall, Proxy, NAT.....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bon j'ai trouvé la source de mon problème ^^
    En fait j'avais deux problèmes :
    effectivement un problème d'IP, j'essayais d'attaquer un serveur qui filtrer les IP, en WIFI c'était bon car je récupérer l'IP de mon entreprise qui été OK, par contre en 3G on récupére l'IP de la borne la plus proche...

    Ensuite j'utilisé la librairie KSOAP, mais la 3eme du nom, et apparement ma façon de l'implémenter ne lui convenait pas, du coup avec la la version 2.6.5 ça marche nickel, vas savoir pourquoi ?!?

    Bref en tout cas je remercie les personnes qui m'ont aidé ^^
    A charge de revanche

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

Discussions similaires

  1. Fonctionne avec IE mais pas Mozilla : evenement onkeyup
    Par sandddy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/12/2007, 17h21
  2. Réponses: 2
    Dernier message: 11/12/2007, 13h36
  3. Réponses: 1
    Dernier message: 07/09/2007, 12h15
  4. Réponses: 3
    Dernier message: 07/06/2007, 09h17
  5. Fonction JS qui fonctionne avec Mozilla mais pas avec IE.
    Par etiennegaloup dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 13h58

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