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

GWT et Vaadin Java Discussion :

Récupérer une page HTML en GWT


Sujet :

GWT et Vaadin Java

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 54
    Points
    54
    Par défaut Récupérer une page HTML en GWT
    Bonjour,

    Je sollicite votre aide afin de récupérer une page HTML passée par URL et pouvoir ensuite parser cette page.
    Je travaille avec GWT.

    Merci beaucoup pour votre aide.

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Points : 242
    Points
    242
    Par défaut
    Bonjour,
    Je pense qu'avec la classe RequestBuilder tu devrais pouvoir faire cela !

    Regarde le code suivant :
    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
     
    String url = "http://www.google.fr";
    RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));
     
    try {
      Request request = builder.sendRequest(null, new RequestCallback() {
        public void onError(Request request, Throwable exception) {
           // Couldn't connect to server (could be timeout, SOP violation, etc.)     
        }
     
        public void onResponseReceived(Request request, Response response) {
          if (200 == response.getStatusCode()) {
              // Process the response in response.getText()
          } else {
            // Handle the error.  Can get the status text from response.getStatusText()
          }
        }       
      });
    } catch (RequestException e) {
      // Couldn't connect to server        
    }
    Dans la fonction onResponseReceived, tu as en paramètre un objet de type Response, tu devrais donc pouvoir récupérer le corps de la réponse grâce à cet objet puis la parser ensuite.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    Merci beaucoup de votre.
    Je teste et je reviens vers vous

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    Oui ça marche très bien. Merci beaucoup.
    Mais comment fait-on pour le parsing?

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Points : 242
    Points
    242
    Par défaut
    Tout dépend du format du fichier que tu reçois.
    Par exemple si tu reçois des message au format xml, alors ça sera facile, tu pourras utiliser une API comme JAXP où JAXB pour parser ton fichier.

    Après si c'est un format maison, il faudra que tu le fasses toi même avec un BufferReader par exemple, comme ci tu faisais la lecture d'un fichier texte.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    Désolé mais j'ai repris votre code aujourd'hui et ça marche pas

  7. #7
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Points : 242
    Points
    242
    Par défaut
    Qu'elle est l'erreur qui s'affiche ?

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    C'est le truc le plus bizarre aucune réponse ne figure. Il va bien dans onResponseReceived mais n'affiche rien: la response.getStatustext() revoie 0

  9. #9
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Points : 242
    Points
    242
    Par défaut
    C'est peut-être un problème de sécurité, je vais tâcher de regarder !

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    Déjà fait et même réponse!!
    J'ai un peu modifié le code j'ai dut passer par une servlet et toujours la même réponse
    Voici le code de ma Classe
    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
     
    public class JsonGwtProject implements EntryPoint {
     
     
    	public void onModuleLoad() {
     
     
    		final Button fetchDataButton = new Button("Fetch data");
    		fetchDataButton.addStyleName("sendButton");
     
    		RootPanel.get("fetchDataButtonContainer").add(fetchDataButton);
     
    		fetchDataButton.addClickHandler(new ClickHandler() {
    			public void onClick(ClickEvent event) {
    				fetchDataFromServer();
    			}
    	});
    }
    	private void fetchDataFromServer() {
     
    		try {
    			RequestBuilder rb = new RequestBuilder(RequestBuilder.GET, "/jsongwtproject");
     
    			rb.setCallback(new RequestCallback() {
     
    				@Override
    				public void onResponseReceived(Request request,
    						Response response) {
     
    					System.out.print(response.getText());
    				}
     
    				@Override
    				public void onError(Request request, Throwable exception) {
    					Window.alert("Error occurred" + exception.getMessage());
     
    				}
     
     
    		});
    			rb.send();
     
    		 }
    		catch (RequestException e) {
    			Window.alert("Error occurred" + e.getMessage());
    		}	
    	}
    et celui là est celui de la servlet
    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
     
     
    public class ProductServlet  extends HttpServlet {
     
     
    			private static final long serialVersionUID = 8032611514671727168L;
     
    		 @Override
    		 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     
    		  try {
     
    			  RequestBuilder rb = new RequestBuilder(RequestBuilder.POST, "http://www.google.fr");
    			  rb.setHeader("Content-Type","application/x-www-form-urlencoded");
     
    				rb.sendRequest(null,new RequestCallback() {
    					 @Override
    					 public void onResponseReceived(Request request, Response response) {
    						 System.out.print(response.getText());
     
    					 }
     
    					@Override
    					public void onError(Request request, Throwable exception) {
    						 Window.alert("Error occurred" + exception.getMessage());
     
    					}
    				});
     
    			}
    			catch (RequestException e) {
    				Window.alert("Error occurred" + e.getMessage());
    			}	
    		}
     
     
     
    }
    Sachant que "/jsongwtproject" est le path de la servlet

  11. #11
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Points : 242
    Points
    242
    Par défaut
    J'ai l'impression que les règles de sécurité ne permettent pas de recevoir de réponse sur un autre domaine, regarde ce post. En fait tu ne peux que requêter sur le domaine où est déployé ton appli GWT, par exemple pour l'adresse http://localhost:8080, ça fonctionne bien mais pour http://google.fr ça ne fonctionne pas !

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    Que faire alors?

  13. #13
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    J'ai trouvé HTMLUNIT mais ça marche pas vraiment!!
    En plus c'est pour les tests

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

Discussions similaires

  1. Récupérer une page HTML contenant de l'AJAX
    Par pouic06 dans le forum Général Java
    Réponses: 2
    Dernier message: 04/05/2012, 10h17
  2. Réponses: 3
    Dernier message: 28/01/2011, 10h58
  3. Récupérer des info dans une page html
    Par DORBRITZ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 06/03/2008, 11h13
  4. Récupérer des données sur une page HTML
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/11/2005, 17h22
  5. Récupérer des données dans une page HTML
    Par newdelirium dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2005, 19h18

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