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 :

[Debutant] envoi d'un message POST avec une URL


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut [Debutant] envoi d'un message POST avec une URL
    Bonjour ...
    je me casse un peu la tête sur un probleme simple, et je ne vois pas le probleme.
    j'ai un serveur HTTP qui bouffe tous et n'importe quoi, je fais des envoi en C++, j'y vais avec un navigateur internet, et je recois en local toutes les requetes et message (je les copies même en local)
    Maintenant je dois envoyer un message en java ... et la, c'est la misere, j'arrive a rien ... je vais mettre le bout de code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    URL url = new URL("http://localhost:8090");
     
    String data = "test je craque un peu";
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
    osw.write(data);
    osw.flush();
    osw.close();
    merci d'avance
    yann

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Il faut utiliser ceci je crois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    URLConnection conn = url.openConnection();
    connsetRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    OutputStreamWriter osw = new OutputStreamWriter(conn.getOutputStream());
    String test = "uneVariable=" + URLEncoder.encode ("Une Valeur") + "&uneAutreVariable=" + URLEncoder.encode ("Une autre valeur..");
    [...] // ecriture et reception réponse
    K

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    bof pas mieux

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 54
    Points : 52
    Points
    52
    Par défaut
    Il y a un tuto ici pour l'envoi de requetes POST avec les URL en java Click here !

    Sinon pour les requetes de type GET , tu les places simplement dans ton URL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    URL u = new URL("http://localhost:8090/?message=pouet");

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    arf c'est un peu le probleme j'ai le même code que dans le tutorial

  6. #6
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Tu obtiens quoi en réponse ?
    Ca serait sympa d'avoir les retours, au lieu de dire que ça marche pas
    K

  7. #7
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    Justement c'est ca le probleme, je ne recois rien en retour
    c'est un peu le soucis

  8. #8
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Quand je parle du retour, je ne veux pas dire si ton code fait une erreur ou non; je veux plutot parler du retour du serveur, que tu récupères avec un getInputStream
    K

  9. #9
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    c'est bien le probleme le serveur ne renvoi rien en retour.
    Car il n'a rien recu ... (en gros je precise, j'ai le serveur HTTP en debug en même temps, donc je vois les infos qui transitent ou pas)

  10. #10
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Ok, alors ça y est j'ai vu ton problème;
    Si tu n'accèdes même pas au serveur, c'est que tu as un problème dès le début de ton traitement au moment de l'openConnection; Ton problème c'est URL, il faut utiliser un constructeur qui précise le port en int, et le host ne doit pas contenir le numéro du port.

    A+
    K

  11. #11
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    merci de ton aide
    j'ai trouvé ^^ tadaaaaaaaa

    apres une longue lutte, j'ai sortie ce code, bon il est pas completement epuré mais il marche :

    FYI
    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
     
    // construction message MIME multi part
    Multipart mimeMultiPart = new MimeMultipart("related");
     
    MimeBodyPart mimeBodyPart = new MimeBodyPart();
    mimeBodyPart.setText(xmlDocOut.toXML());
    mimeBodyPart.addHeader("Content-Type", "application/vnd.cip4-jdf+xml");
    mimeMultiPart.addBodyPart(mimeBodyPart);
     
    MimeBodyPart mbp1 = new MimeBodyPart();
    mbp1.setContent("booouuuhhhh", "text/plain");
     
    mimeMultiPart.addBodyPart(mbp1);
     
    MimeBodyPart root = new MimeBodyPart();
    root.setContent(mimeMultiPart);
     
    // connection et envoi du message vers une URL
    URL url = new URL("http://localhost:8090/");
    URLConnection conn = url.openConnection();
     
    String strContentType = "multipart/related; boundary";
    conn.setRequestProperty("Content-Type", strContentType);
     
    HttpURLConnection connection = (HttpURLConnection)conn;
    connection.setRequestMethod("POST");
    connection.setDoInput(true);
    connection.setDefaultUseCaches(false);
    connection.setDoOutput(true);
     
    DataOutputStream out = new DataOutputStream(connection.getOutputStream());
     
    //impression console
    root.writeTo(System.out);
    //envoi sur URL
    root.writeTo(out);
     
    out.flush();
    out.close();
     
    // recup message de retour
    connection.getInputStream();

  12. #12
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 55
    Points : 28
    Points
    28
    Par défaut
    bon je vais mettre une petite precision qui est tres importante...

    tous le code qui etaient present dans les lignes du dessus sont bonnes, il faut juste ne pas oublier de mettre la recuperation de la reponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // recup message de retour
    connection.getInputStream();
    sinon on ne peut pas envoyer ...
    à noter dans un coin pour ceux qui voulait faire du one shoot sans s'occuper de la reponse.

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

Discussions similaires

  1. Envoi de fichier en POST via une URL vers une page php
    Par Supersonik dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 21/07/2011, 16h47
  2. Redirection et envoi de données en POST avec applet Java
    Par johnson95 dans le forum Applets
    Réponses: 0
    Dernier message: 10/07/2009, 15h22
  3. [PHP 5.2] Récupérer une variable POST avec une variable comme nom
    Par bailamos dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2008, 14h59
  4. Gestion des messages envoyés avec une 2ème boite
    Par Cybher dans le forum Outlook
    Réponses: 1
    Dernier message: 09/10/2008, 10h30

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