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 :

Récupérer la réponse d'une adresse HTTP


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 73
    Par défaut Récupérer la réponse d'une adresse HTTP
    Bonjour.
    Existe-il une méthode en java pour récupérer des données provenant une adresse http variable ?
    Par exemple, l'adresse "http://domaine/dossier/var1", où var1 est une variable de type char dont la valeur est définie dans le code java. Cette adresse http renvoie une réponse au format texte.
    Quelle méthode utiliser dans le code java pour lire et traiter cette réponse ?
    Je vous remercie.

  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
    Il n'y a pas de protocole prédéfini ni connu pour, en HTTP, renvoyer des "variables de type char dont la valeur est définie dans le code Java."

    Le plus simple serait de nous montrer ce que cette adresse renvoie exactement.

    Pour lire le contenu d'une URL, ceci peut faire l'affaire (adaptable si nécessaire) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public String readURL(String url) throws IOException {
      try(InputStream is = new URL(url).openConnection().getInputStream()) {			
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
     
        StringBuilder builder = new StringBuilder();
        for(String line = reader.readLine(); line != null; line = reader.readLine()) {
          builder.append(line + "\n");
        }
        return builder.toString();
      }
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 73
    Par défaut
    Merci pour votre réponse.
    L'adresse http renvoie une réponse au format JSON. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"label": "Confiture", "uri": "id:1.1:2.2"}, {"label": "Fromage", "uri": "id:1.7:3.2"}, {"label": "Beurre", "uri": "id:5.3:4.8"}]
    Le contenu de cette réponse sera différent selon la valeur var1 de la variable dans l'adresse "http://domaine/dossier/var1".
    En résumé : un champ de saisie permet à l'utilisateur d'entrer une valeur pour "var1", et un bouton 'valider' permet d'envoyer la requête "http://domaine/dossier/var1". Enfin, un tableau récupère le résultat (la réponse au format JSON) de la requête http, et affiche à l'utilisateur un des "label" de la réponse par exemple.
    Est-ce faisable avec URL url = new URL("adresse") ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la première partie se fait sans problème avec un URL. Par contre, décoder la réponse (JSON) doit se faire soit à la main, soit avec un librairie tierce.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 73
    Par défaut
    Sans tenir compte de la variable var1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    URLConnection connexion = null;
    URL url = new URL("http://domaine/dossier/");
    connexion = url.openConnection();
    Comment faire pour que le new URL prenne en compte "var1" ?

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    URL url = new URL("http://domaine/dossier/"+var1);
    Tout simplement (si ce que tu nous a décrit est correct)

Discussions similaires

  1. Récupérer la réponse d'une console DOS
    Par twixi dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/07/2008, 05h19
  2. Récupérer la réponse d'un serveur http
    Par dibiz dans le forum Langage
    Réponses: 4
    Dernier message: 19/05/2008, 18h01
  3. Récupérer le résultat d’une requête http
    Par f_in_afyn dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2007, 17h41
  4. [Mail] Récupérer le domaine d'une adresse mail
    Par Iro87 dans le forum Langage
    Réponses: 5
    Dernier message: 14/12/2006, 20h49
  5. Récupérer la valeur d'une adresse hexa 300.
    Par Cochman dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 04/06/2005, 17h45

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