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

API standards et tierces Android Discussion :

Erreur "Server failed to respond with a valid HTTP response"


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 27
    Par défaut Erreur "Server failed to respond with a valid HTTP response"
    Bonjour à tous,

    Voilà trois jours complets que je planche sur ce problème et que je n'arrive pas à le résoudre. Je m'en remets à vous.

    Je développe actuellement une application android qui me permet de communiquer avec une base de données par le biais de fichiers php sur un server.

    Je vous présente mon code qui me permet de faire cela :
    Avec XX.XX.XX.XX : adresse ip du serveur
    et YYYY : le port

    Le fichier PHP listUsersWithLogin devrait juste me renvoyer une liste d'utilisateurs avec un login semblable à 'login'

    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
     
     
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("login",login));
     
    HttpClient httpclient = new DefaultHttpClient();
     
    HttpPost("http://XX.XX.XX.XX:YYYY/listUsersWithLogin.php");
     
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
     
    HttpResponse response = httpclient.execute(httppost);
     
    HttpEntity entity = response.getEntity();
    jsonText = EntityUtils.toString(entity, HTTP.UTF_8);
     
    }catch(Exception e){
    		Log.e("log_tag", "Error in http connection " + e.toString(), e);
    }
    Je précise que j'ai développé une appli PC utilisant jdbc où je n'ai aucun problème avec.
    De plus, j'ai une freebox où j'ai bien redirigé le port XXXX sur ma machine dans le réseau local.

    Je vous présente l'erreur que j'obtiens et qui me rend fou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Error in http connection org.apache.http.client.ClientProtocolException
    org.apache.http.client.ClientProtocolException
    at org.apache.http.impl.client.AbstractHttpClient.execute(Abstract HttpClient.java:557)
    at org.apache.http.impl.client.AbstractHttpClient.execute(Abstract HttpClient.java:487
    at org.apache.http.impl.client.AbstractHttpClient.execute(Abstract HttpClient.java:465
    .....
    Caused by : org.apache.http.ProtocolException: Ther server failed to respond a valid HTTP response
    ....

    Voilà, j'espère de tout coeur que vous pourrez m'aider.

    J'attends avec impatience vos différents retours.

    P.S : je précise également que j'utilise WAMP. Et comme de l'ai déjà dit, le programme PC utilisant jdbc et qui fait exactement la même chose (sans fichiers php forcément) fonctionne correctement.
    De plus, lorsque je donne des adresses ip directement en local, je n'ai pas le moindre soucis.

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Bonjour,

    Essaye de voir comment c'est fait dans ce tuto pour commencer.

    Ensuite, nous avons besoin de savoir ce que renvoie le serveur. Si il reçoit quelque chose...

    Essaye de mettre des logs dans ton programme.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 27
    Par défaut
    Donc en reprenant l'exemple ci-dessus.

    Je retrouve exactement la même erreur que voici :
    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
     
    11-02 13:03:11.478: E/tag1(268): org.apache.http.client.ClientProtocolException
    11-02 13:03:11.478: E/tag1(268): org.apache.http.client.ClientProtocolException
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:557)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
    11-02 13:03:11.478: E/tag1(268): 	at de.demo.login.Login$3.run(Login.java:165)
    11-02 13:03:11.478: E/tag1(268): Caused by: org.apache.http.ProtocolException: The server failed to respond with a valid HTTP response
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:93)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:219)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:119)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
    11-02 13:03:11.478: E/tag1(268): 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    11-02 13:03:11.478: E/tag1(268): 	... 3 more
    C'est clairement l'instruction suivante qui pose problème et qui provoque l'erreur précédente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HttpResponse response = httpclient.execute(httppost);

  4. #4
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Peux tu m'expliquer la ligne 8 de ton code?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HttpPost("http://XX.XX.XX.XX:YYYY/listUsersWithLogin.php");
    Tu devrais plutot mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    httppost = new HttpPost("http://XX.XX.XX.XX:YYYY/listUsersWithLogin.php");
    Que contient ton httppost lors de l'envoie?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 27
    Par défaut
    Oui en fait je faisais déjà :
    HttpPost httppost = new HttpPost("http://XX.XX.XX.XX:YYYY/listUsersWithLogin.php");

    C'est un oubli dans mon code, désolé.

    Alors en fait, XX.XX.XX.XX c'est l'adresse ip de mon serveur vu par internet ( celle que j'obtiens sur http://mon-ip.com.

    Et pour YYYY : c'est le port , en l'occurence 3306 pour mon projet.

    Donc imaginons que mon adresse ip obtenue soit : 78.230.67.88, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    HttpPost httppost = new HttpPost("http://78.230.67.88:3306/listUsersWithLogin.php");
    puis je fais : 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));
    HttpResponse response = httpclient.execute(httppost);
    Et c'est là que j'ai l'exception.

    Mais sinon j'ai repris entièrement l'exemple que tu as donné.

    Vu que j'ai wamp, j'ai un dossier www qui contient ce fameux fichier php. (donc par exemple celui de l'exemple que tu as créé et qui m'a d'ailleurs bien aidé )

    En tout cas, merci beaucoup David55 de t'intéresser à mon problème

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 27
    Par défaut
    Je n'ai toujours pas réglé mon problème malgré des recherches sur des forums anglais/américains.

    Personne n'a jamais rencontré ce problème ou ne peut m'aider ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/02/2013, 18h22
  2. [AC-2010] Insert Into erreur "ODBC --Call Failed" avec un champ sql server Identify
    Par jayjazz dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 17/05/2011, 13h17
  3. [Continuum] Erreur svn : "Server certificate verification failed"
    Par Sikifon dans le forum Intégration Continue
    Réponses: 10
    Dernier message: 25/09/2009, 10h45
  4. Réponses: 1
    Dernier message: 16/11/2006, 11h34
  5. Réponses: 5
    Dernier message: 29/05/2006, 14h42

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