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

Langage Java Discussion :

Affichage d'une page web


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut Affichage d'une page web
    Bonjour tout le monde,

    Je suis actuellement en developement d'une petite application qui permet d'avoir les fonctionnalité les plus simple d'un proxy, c'est à dire de récupéré une URL de l'affiché ainsi que de controlé la validité de cette page,

    j'ai déja programmé une petit application qui affiche l'url de la page tapé (en texte) mais je ne sais pas comment faire pour afficher la page web que j'ai tapé dans l'url.

    j'aimerais savoir ce que j'ai a modifié dans ce code pour afficher betement la page web ?

    merci.
    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
     
    import java.io.*;
    import java.util.*;
    import java.net.*;
     
    public class Main {
     
        public static void main(String[] args) {
            // TODO code application logic here
            try {
    			ServerSocket ecoute = new ServerSocket(1111);
     
    			String message;
    			Socket service;                   
     
               			boolean test;
    			Vector tabLignes=new Vector();
     
    			service = ecoute.accept();
     
                            PrintWriter sortie = new PrintWriter(new OutputStreamWriter(service.getOutputStream()));              
    			BufferedReader entree = new BufferedReader (new InputStreamReader(service.getInputStream()));
     
     
     
    			test=true;
    			while (test){ 
    				message=entree.readLine();
                                    				if (message.equals("")) test=false;
    				else { tabLignes.add(message);
    				System.out.println(message);
    				}
    			}
     
    		System.out.println("sortie de la boucle");
    			//todo : renvoyer une page au navigateur
    			sortie.println("HTTP/1.1 200 OK");
    			sortie.println("");
    			int taille=tabLignes.size();
    			for (int i=0; i<taille;i++)
    			{
    				message=(String)tabLignes.elementAt(i);
    				sortie.println(message);		
    			}
    			for (int i=0;i<taille;++i)
    			{
    				message=(String)tabLignes.elementAt(i);
    				String[] entetes = message.split(" ");
    					System.out.println(message);
    					System.out.println(entetes[1]);
     
    			}
    		sortie.close();
    		entree.close();
    		service.close();
    		}
    		catch(Exception e){
    			System.err.println("erreur :" + e);
    		}		
     
        }

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Tu ne respectes pas le protocole pour les entêtes HTTP.
    Chaque ligne d'entête doit être séparées par CR LF. Un CR LF supplémentaire doit être ajouté pour terminer tous les entêtes.

    Ensuite, il te faut récupérer l'entête qui contient l'adresse demandée par le navigateur.

    Je t'encourage vivement à jeter un oeil à la RFC HTTP
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    merci pour ton aide !
    J'ai reussi a obtenir mon address url mais j'ai un autre probleme, ma socket "serveur" refuse de se créer, est ce que quelqu'un sait d'ou peut provenir se probleme ?

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
        public static void main(String[] args) throws IOException {
            // TODO code application logic here
            int localport = 1111;
            int remoteport = 80;
            String message;
            boolean test;
            ServerSocket ecoute = new ServerSocket(localport);
            String host="";
            Vector tabLignes=new Vector();       
            System.out.println("Création des variables");        
     
    					 
            while(true){
                        
                 Socket client=null,serveur=null;
                 try {
    		//dans une boucle
    		client = ecoute.accept();
                    System.out.println("création socket client :" + client);
                    System.out.println("crétion serversocket ecoute :" + ecoute);
                    //   final InputStream streamFromClient = client.getInputStream();
                    //    final OutputStream streamToClient = client.getOutputStream();                                   
    		PrintWriter sortie = new PrintWriter(new OutputStreamWriter(client.getOutputStream()));             
    		BufferedReader entree = new BufferedReader (new InputStreamReader(client.getInputStream()));
    		//PrintWriter sortie = new PrintWriter(service.getOutputStream());
    		        
                    System.out.println("création printwiter sortie :" + sortie);
                    System.out.println("création bufferedreader :" + entree);
                    test=true;
    		while (test){ 
    			message=entree.readLine();                                
    			if (message.equals("")) test=false;
                                 else { tabLignes.add(message);}
                    }
    					
    		int taille=tabLignes.size();
    		
    		for (int i=0;i<taille;++i){
                            message=(String)tabLignes.elementAt(1);                              
    		        host=(String)tabLignes.elementAt(1);
    		}
    		          
    		host=host.substring(host.indexOf(" ")+1,host.length());
                    System.out.println("création du host :" + host);
                    //InetAddress getHost = InetAddress.getByName(host);
                    // System.out.println(getHost);
                    try {
                            serveur = new Socket(host,remoteport);
                            System.out.println("socket serv :" + serveur);
                            PrintWriter sortieWeb = new PrintWriter(new OutputStreamWriter(serveur.getOutputStream()));  
                            System.out.println("32");              
                            BufferedReader entreeWeb = new BufferedReader (new InputStreamReader(serveur.getInputStream()));          
                            sortieWeb.write(entreeWeb.toString());
                     }
    		 catch(Exception e){
                            System.err.println("erreur :" + e);
    		 }
    			
                     //sortieWeb.println(entreeWeb.toString())
    		 System.out.println("sortie de la boucle");
    		//todo : renvoyer une page au navigateur
    		sortie.println("HTTP/1.1 200 OK");
    		sortie.println("");
    		                        
    		for (int i=0; i<taille;i++){
    			message=(String)tabLignes.elementAt(i);
    			sortie.println(message);		
    		}
    		System.out.println("4");
                    sortie.close();
    		entree.close();
    		//serveur.close();
    			
    		}
    		catch(Exception e){
    			System.err.println("erreur :" + e);
    		}		
            }
        }
    Voici l'erreur qu'il maffiche : java.net.ConnectException: Connection timed out: connect

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Ouhala ! Rien ne va
    Le host que tu récupères n'a rien à voir avec ce que le client distant demande : c'est le host local de ton proxy !
    Fait une recherche sur l'entête HTTP "Location".

    [EDIT]je raconte n'importe quoi.... c'est bien l'entête host, et non pas location[/EDIT]
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    merci, j'ai essayé de corriger et sa me renvoi toujour la bonne url mais sa me met une erreur : java.net.ConnectException: Connection timed out: connect
    aurais tu une idée d'ou sa pourrai venir ?
    J'ai pensé au firewall mais je suis pas sur

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    C'est bien l'entête "host" qui contient l'URL demandée par le client. Désolé, j'ai écrit trop vite

    Donne-nous ce qu'écrit ton programme, toutes les traces.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

Discussions similaires

  1. [cURL] Affichage d'une page web ?
    Par pdtor dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 15/02/2007, 03h11
  2. affichage d'une page web en arabe par IE
    Par josémaria dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 30/12/2006, 20h16
  3. gerer l'affichage d'une page web au demarrage
    Par josémaria dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/11/2006, 17h33
  4. Réponses: 4
    Dernier message: 29/06/2006, 11h09
  5. Forcer l'affichage d'une page web
    Par tit_oune dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2006, 15h37

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