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

Java Discussion :

Apache HTTP Client : Corps d'une requéte POST


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 46
    Par défaut Apache HTTP Client : Corps d'une requéte POST
    Bonjour , j'utilise apache http client 4.2 afin de communiquer à un serveur en envoyant des requétes GET, POST et PUT. J'aimerai bien savoir comment préparer le corps d'une requéte POST afin de créer une nouvelle entrée sur le serveur. Si pour une réponse GET j'obtiens la structure suivante JSON d'un objet {"attribut1":"val1","attribut2":"val2","attribut3":"val3"} alors le corps de ma requéte devra contenir ces attributs avec des valeurs , non ?

    Et comment pourrai-je indiquer ça dans ma requéte ?
    PS: j'ai cherché dans les forums , et j'ai essayé pas mals de solutions comme requete.setParameter() mais ça fonctionne pas.

    Aide SVP

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par albert55 Voir le message
    Si pour une réponse GET j'obtiens la structure suivante JSON d'un objet {"attribut1":"val1","attribut2":"val2","attribut3":"val3"} alors le corps de ma requéte devra contenir ces attributs avec des valeurs , non ?
    Ce serait logique en tout cas, et c'est l'un des usages habituels. Mais ce n'est pas du tout obligatoire : chaque serveur fait ce qu'il veut.
    Pour savoir ce qu'un serveur demande, il faut regarder sa doc et ses exemples.

    Citation Envoyé par albert55 Voir le message
    Et comment pourrai-je indiquer ça dans ma requéte ?
    D'abord créer une String qui contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "{'attribut1':'val1','attribut2':'val2','attribut3':'val3'}"
    Ensuite envoyer cette String comme corps de la requête, en suivant les tutoriels de HttpClient.
    Le quickstart indique comment envoyer un POST.
    Mais il envoie un formulaire HTML, alors que toi tu veux juste envoyer une String.
    Le tutoriel creuse un peu, et parle notamment de StringEntity, ce dont tu vas avoir besoin.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 46
    Par défaut
    Merci pour ta réponse, j'aimerai surtout savoir quelle méthode utiliser afin d'envoyer mon objet String qui respecte la structure JSON.

    Dans les liens que tu m'as fourni, il y a la possibilité de passer cette chaine comme un paramétre via :
    HttpPost httpPost = new HttpPost("http://targethost/login");
    List <NameValuePair> nvps = new ArrayList <NameValuePair>();
    nvps.add(new BasicNameValuePair("username", "vip"));
    nvps.add(new BasicNameValuePair("password", "secret"));
    httpPost.setEntity(new UrlEncodedFormEntity(nvps));
    HttpResponse response2 = httpclient.execute(httpPost);
    Est ce que c'est la bonne maniére de le faire ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par albert55 Voir le message
    Merci pour ta réponse, j'aimerai surtout savoir quelle méthode utiliser afin d'envoyer mon objet String qui respecte la structure JSON.
    Ça c'est pas le problème de HTTP, donc pas le problème de HttpClient.

    Quand tu auras construit un truc à envoyer, tu le donnes à HttpClient pour qu'il l'envoie. Comment construire ce truc, c'est ton boulot, pas le sien.
    Je te suggère une bibliothèque JSON pour construire une String respectant la structure JSON.

    Citation Envoyé par albert55 Voir le message
    Est ce que c'est la bonne maniére de le faire ?
    Pour envoyer du JSON, non. Ça ça envoie un formulaire HTML, ça n'a rien à voir. Pour envoyer du JSON je suggère StringEntity.

    Par contre, si ça se trouve le serveur auquel tu parles veut vraiment que tu lui envoies un formulaire HTML. J'en sais rien, tu nous as même pas dit quel serveur c'est.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Apache HTTP Client : paramétres d'une requéte PUT
    Par albert55 dans le forum Général Java
    Réponses: 4
    Dernier message: 15/07/2013, 14h39
  2. Réponses: 0
    Dernier message: 19/03/2010, 17h33
  3. Envoi d'une requête POST à partir d'un client telnet!
    Par mumu27 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 22/11/2009, 10h18
  4. Comment envoyer une requête POST via HTTP ?
    Par pdtor dans le forum C++
    Réponses: 2
    Dernier message: 13/09/2005, 05h54
  5. Analyse de code HTML en réponse a une requête post.
    Par ghost942 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/06/2005, 21h40

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