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

avec Java Discussion :

interrogation d'un serveur web en java


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Par défaut interrogation d'un serveur web en java
    bonjour à tous,

    je suis à la recherche d'une bibliothèque java qui ferait de l'interrogation de serveur web et attendrait une réponse de celui ci. Je m'explique de façon plus détaillé:

    Mon application va devoir générer une requête: "http://localhost/gestionClient.php"

    je vais devoir stocker des variables POST ou GET "client, datedujour" dans cette application Java.

    Ensuite mon application va envoyer l'url avec les variables à mon serveur et attendre sa réponse pour obtenir des lignes d'ordres.

    Pour faire un petit exemple, je vais stocker en java:
    client: Superclient
    Date: 19/06/2009
    > envoie de ma requete vers "http://localhost/gestionClient.php" qui devra donc comprendre mes variables et j'attends de mon serveur

    > salut superClient
    > aujourd'hui tu dois
    - téléphoner à isabelle
    - passer au pressing
    - c'est également l'anniversaire de ta femme triple idiot.

    mais si je suis superClient2, je dois obtenir
    > salut superClient2
    > aujourd'hui tu dois
    - faire tes valises
    - passer prendre les billets d'avion.
    - faire un bisous à superClient avant de partir en vacance.

    Savez vous me dire si une telle bibliothèque existe en http, htpps?

    merci de vos réponses

    ps: je n'ai pas le droit d'utiliser une interrogation de base de donnée.

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    À priori tu trouveras ce qu'il te faut à HTTP Components.

  3. #3
    Membre éclairé Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Par défaut
    j'avais effectivement trouvé cette librairie mais elle est un peu austère à implémenter, et celà m'avait découragé à avancer. EN lisant et relisant j'arrive a obtenir de petites choses que je viendrai publier une fois un résultat satisfaisant obtenu.
    Meme si la voix est difficile vu mon niveau pâquerette en JAVA je vais continuer

    merci bien

  4. #4
    Membre éclairé Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Par défaut
    L'utilisation du GET est trivial:

    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
    55
    56
    57
    58
    59
     
            HttpParams params = new BasicHttpParams();
            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
            HttpProtocolParams.setContentCharset(params, "UTF-8");
            HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
            HttpProtocolParams.setUseExpectContinue(params, true);
     
            BasicHttpProcessor httpproc = new BasicHttpProcessor();
            // Required protocol interceptors
            httpproc.addInterceptor(new RequestContent());
            httpproc.addInterceptor(new RequestTargetHost());
            // Recommended protocol interceptors
            httpproc.addInterceptor(new RequestConnControl());
            httpproc.addInterceptor(new RequestUserAgent());
            httpproc.addInterceptor(new RequestExpectContinue());
     
            HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
     
            HttpContext context = new BasicHttpContext(null);
            HttpHost host = new HttpHost("localhost", 80); //DOMAINE + port
     
            DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
            ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();
     
            context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
            context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
     
            try {
     
                String[] targets = {
                        "/site/hello.php?client=superClient&date=20062009" // les parametres GET
                        };
     
                for (int i = 0; i < targets.length; i++) {
                    if (!conn.isOpen()) {
                        Socket socket = new Socket(host.getHostName(), host.getPort());
                        conn.bind(socket, params);
                    }
                    BasicHttpRequest request = new BasicHttpRequest("GET", targets[i]);
                    System.out.println(">> Request URI: " + request.getRequestLine().getUri());
     
                    request.setParams(params);
                    httpexecutor.preProcess(request, httpproc, context);
                    HttpResponse response = httpexecutor.execute(request, conn, context);
                    response.setParams(params);
                    httpexecutor.postProcess(response, httpproc, context);
     
                    System.out.println("<< Response: " + response.getStatusLine());
                    System.out.println(EntityUtils.toString(response.getEntity()));
                    System.out.println("==============");
                    if (!connStrategy.keepAlive(response, context)) {
                        conn.close();
                    } else {
                        System.out.println("Connection kept alive...");
                    }
                }
            } finally {
                conn.close();
            }
    La méthode POST en revanche ne fonctionne pas et je ne comprends pas pourquoi.

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
            HttpParams params = new BasicHttpParams();
            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
            HttpProtocolParams.setContentCharset(params, "UTF-8");
            HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
            HttpProtocolParams.setUseExpectContinue(params, true);
     
            BasicHttpProcessor httpproc = new BasicHttpProcessor();
            // Required protocol interceptors
            httpproc.addInterceptor(new RequestContent());
            httpproc.addInterceptor(new RequestTargetHost());
            // Recommended protocol interceptors
            httpproc.addInterceptor(new RequestConnControl());
            httpproc.addInterceptor(new RequestUserAgent());
            httpproc.addInterceptor(new RequestExpectContinue());
     
            HttpRequestExecutor httpexecutor = new HttpRequestExecutor();
     
            HttpContext context = new BasicHttpContext(null);
     
            HttpHost host = new HttpHost("localhost", 80);
     
            DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
            ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();
     
            context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
            context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
     
            try {
     
                HttpEntity[] requestBodies = {
     
                        new StringEntity(
                                "clientPOST:superClient\n date:20062009\n", "UTF-8")              
                };
     
                for (int i = 0; i <= requestBodies.length; i++) {
                    if (!conn.isOpen()) {
                        Socket socket = new Socket(host.getHostName(), host.getPort());
                        conn.bind(socket, params);
                    }
                    BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST",
                            "/site/hello.php");
                    request.setEntity(requestBodies[i]);
                    System.out.println(">> Request URI: " + request.getRequestLine().getUri());
     
                    request.setParams(params);
                    httpexecutor.preProcess(request, httpproc, context);
                    HttpResponse response = httpexecutor.execute(request, conn, context);
                    response.setParams(params);
                    httpexecutor.postProcess(response, httpproc, context);
     
                    System.out.println("<< Response: " + response.getStatusLine());
                    System.out.println(EntityUtils.toString(response.getEntity()));
                    System.out.println("==============");
                    if (!connStrategy.keepAlive(response, context)) {
                        conn.close();
                    } else {
                        System.out.println("Connection kept alive...");
                    }
                }
            } finally {
                conn.close();
            }
    je pensais pourtant rester dans l'idée de l'exemple d'Apache fondation http://svn.apache.org/repos/asf/http...lHttpPost.java

    Si vous voyez mon erreur je suis preneur

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/10/2011, 15h43
  2. Serveur Web local Java
    Par olivier_gold dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 03/08/2011, 18h42
  3. requete ajax sur un serveur web en java depuis php
    Par enzostar dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 29/03/2010, 13h59
  4. Serveur Web & Java
    Par Kehel dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 14/08/2008, 18h41

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