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

Entrée/Sortie Java Discussion :

Aide pour HttpClient


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 208
    Par défaut Aide pour HttpClient
    Bonjour, je dois envoyer des requêtes HTPP à une page PHP, je me suis donc orienté vers HTTPClient, seulement je n'arrive pas à "envoyer" mes paramètres... Il ne m'affiche que le code source de la page.

    //Création d'une instance de HttpClient
    HttpClient client = new HttpClient();

    //Création d'une méthode POST
    PostMethod method = new PostMethod("http://localhost/monAppli/login_page.php");

    //On défini les variables
    try {
    NameValuePair[] data = {
    new NameValuePair("user", "administrator"),
    new NameValuePair("pwd", "")
    };
    method.setRequestBody(data);

    client.executeMethod(method);
    String response = new String(method.getResponseBodyAsString().getBytes("8859_1"));
    System.out.println("Affichage de la réponse");
    System.out.println(response);
    method.releaseConnection();
    } catch (HttpException e) {
    System.err.println("Fatal protocol violation: " + e.getMessage());
    e.printStackTrace();
    } catch (IOException e) {
    System.err.println("Fatal transport error: " + e.getMessage());
    e.printStackTrace();
    } finally {
    System.out.println("Fermeture de la connection");
    // La connection est lâché.
    method.releaseConnection();
    }
    Après le "Affichage de la réponse", j'ai du code HTML, mais à l'intérieur les <input value...> ne sont pas renseignées. De plus le formulaire a pour "monForm". Je suis un peu perdu je vous l'avoue.

    Merci de votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Par défaut
    Bonjour,

    plusieurs choses:
    - Mets ton code entre balises code plutot que citation, pour la lisibilité
    - A priori tu envoies tes paramètres correctement
    - Ta dernière phrase me fait penser que tu n'envoie peut etre pas tes paramètres à la bonne page php. Peux tu mettre le code php de ta page: http://localhost/monAppli/login_page.php ?

    En fait je crois comprendre que cette page php est celle qui affiche les cases login et mot de passe quand tu utilises un navigateur. Mais la page à laquelle il faut envoyer tes login et mot de passe en est peut etre une autre...

    Bref si tu mets le code de http://localhost/monAppli/login_page.php, on pourra certainement mieux t'aider!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 208
    Par défaut
    Déjà merci pour ton aide.
    Donc en effet, dans la balide form, l'attribut action pointe sur autre chose. Je mets quand même le code de la page login_page.php :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <br />
    <div align="center">
    <form name="login_form" method="post" action="login.php">
    <table class="width50" cellspacing="1">
    <tr>
    	<td class="form-title">
    		<?php
    			if ( !is_blank( $f_return ) ) {
    			?>
    				<input type="hidden" name="return" value="<?php echo string_html_specialchars( $f_return ) ?>" />
    				<?php
    			}
    			echo lang_get( 'login_title' ) ?>
    	</td>
    	<td class="right">
    	<?php
    		if ( ON == config_get( 'allow_anonymous_login' ) ) {
    			print_bracket_link( 'login_anon.php', lang_get( 'login_anonymously' ) );
    		}
    	?>
    	</td>
    </tr>
    <tr class="row-1">
    	<td class="category" width="25%">
    		<?php echo lang_get( 'username' ) ?>
    	</td>
    	<td width="75%">
    		<input type="text" name="username" size="32" maxlength="32" />
    	</td>
    </tr>
    <tr class="row-2">
    	<td class="category">
    		<?php echo lang_get( 'password' ) ?>
    	</td>
    	<td>
    		<input type="password" name="password" size="16" maxlength="32" />
    	</td>
    </tr>
    <tr class="row-1">
    	<td class="category">
    		<?php echo lang_get( 'save_login' ) ?>
    	</td>
    	<td>
    		<input type="checkbox" name="perm_login" />
    	</td>
    </tr>
    <tr>
    	<td class="center" colspan="2">
    		<input type="submit" class="button" value="<?php echo lang_get( 'login_button' ) ?>" />
    	</td>
    </tr>
    </table>
    </form>
    </div>
    Voilà, j'ai essayé en indiquant dans l'url login.php au lieu de login_page.php, il ne m'afiche aucune réponse après mon System.out.println("Affichage de la réponse");". Et dans ce cas là, comment savoir si tout se passe bien?

  4. #4
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Par défaut
    A priori, si rien ne s'affiche, tout ne s'est pas si bien passé que ca!! Je suppose que quand tu utilises tes pages php via un navigateur, une fois loggé, tu vois quelquechose s'afficher, donc on devrait aussi avoir une réponse.

    Par contre tu fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    NameValuePair[] data = {
    new NameValuePair("user", "administrator"),
    new NameValuePair("pwd", "")
    Et dans ton HTML, on trouve:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input type="text" name="username" size="32" maxlength="32" />
    ...
    <input type="password" name="password" size="16" maxlength="32" />
    Donc, tu devrais normalement envoyer via ton programme java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    NameValuePair[] data = {
    new NameValuePair("username", "administrator"),
    new NameValuePair("password", "")
    Vu que ce sont les noms spécifiés pour ces champs dans le HTML. En suite la balise form spécifie:
    action="login.php" par conséquent toutes ces données doivent etre envoyées à login.php et pas login_page.php comme tu le faisais au début.

    Pour finir, ton formulaire contient un champ hidden, qui n'apparait pas à l'affichage, mais dont la valeur est également envoyée (comme pour username et password). Il est possible que tu doives aussi le renseigner (pas certain mais possible).

    Pour finir, je te conseille d'utiliser l'extension TamperData de Firefox, elle enregistre et te permet de visualiser toutes les requetes HTTP générées par Firefox. Donc tu utilises Firefox pour aller sur login_page.php, tu actives l'extension, tu te connectes et une fois connecté, tu retournes voir quelle requete Firefox a envoyée pour obtenir ce résultat. Libre à toi de t'en inspirer.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 208
    Par défaut
    Je te remercie.
    J'ai bien remis tout, je vais essayer avec les champs hidden pour voir. Et je vais utiliser le tamperData, je vous redis ça.

    Mais encore merci.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 208
    Par défaut
    Après test, j'ai rajouté les champs "hidden" et utilisé TamperData pour visualiser les requêtes. Elles ston bien evnoyées au bon fichier.

    Mais je n'affiche toujours rien dans ma fenêtre java...

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

Discussions similaires

  1. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  2. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  3. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05
  4. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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