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 :

requête http filenotfound


Sujet :

avec Java

  1. #1
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut requête http filenotfound
    Bonjour, je tente depuis un certain temps de récupérer la source d'une page web avec les classes URL, HttpURLConnection, .. mais j'obtiens une erreur filenotfoundexception pratiquement à chaque fois..

    Je ne sais également pas quand utiliser la méthode connect() de HttpURLConnection.. après la avoir écrit les données post ou get dans le buffer ? avant ?

    Merci

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Il faudrait que tu posters ton code pour que l'on puisse t'aider.

  3. #3
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    Voilà le code :

    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
     
    HttpURLConnection conn;
    String line, htmlLine, html = "", post;
     
    String headersNames[] = {
    		"Host",
    		"User-Agent",
    		"Accept",
    		"Accept-Language",
    		"Accept-Encoding",
    		"Accept-Charset",
    		"Keep-Alive",
    		"Connection",
    		"Referer",
    		"Cache-Control",
    		"Pragma",
    		"Cookie"
    };
     
    String headers[] = {
    		"",
    		"Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.5",
    		"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    		"fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3",
    		"gzip,deflate",
    		"ISO-8859-1,utf-8;q=0.7,*;q=0.7",
    		"300",
    		"keep-alive",
    		"", // referer
    		"no-cache",
    		"no-cache",
    		""
    };
     
    BufferedReader reader;
    OutputStreamWriter writer;
    URL url;
     
    	url = new URL(this.chm);
    	conn = (HttpURLConnection) url.openConnection();
    	conn.setRequestMethod(this.meth.toUpperCase());
    	conn.setDoOutput(true);
     
    	for(int i=0;i<headers.length;i++) {
    		  conn.setRequestProperty(headersNames[i], headers[i]);
    	}
     
    	writer = new OutputStreamWriter(conn.getOutputStream());
    	post = URLEncoder.encode(this.loginField,"UTF-8") + "=" + URLEncoder.encode(this.login,"UTF-8") + "&" + URLEncoder.encode(this.passField,"UTF-8") + "=" + URLEncoder.encode(this.pass,"UTF-8");
     
    	writer.write(post);
    	writer.close();
     
    	conn.connect();
     
    	reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
     
    	while((htmlLine = reader.readLine()) != null) {
    		html += "\n" + htmlLine;
    	}
     
    	reader.close();
     
    	conn.disconnect();

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Es tu sur que la ressource que tu veux y acceder existe?
    J'ai essayé ton code chez moi et ça donne nickel.
    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
    80
    81
    82
    83
    84
    85
    86
    87
     
     
     
    package javaapplication1;
     
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
     
     
    public class Main {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws Exception
        {
            HttpURLConnection conn;
    String line, htmlLine, html = "", post;
     
    String headersNames[] = {
    		"Host",
    		"User-Agent",
    		"Accept",
    		"Accept-Language",
    		"Accept-Encoding",
    		"Accept-Charset",
    		"Keep-Alive",
    		"Connection",
    		"Referer",
    		"Cache-Control",
    		"Pragma",
    		"Cookie"
    };
     
    String headers[] = {
    		"",
    		"Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.5",
    		"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    		"fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3",
    		"gzip,deflate",
    		"ISO-8859-1,utf-8;q=0.7,*;q=0.7",
    		"300",
    		"keep-alive",
    		"", // referer
    		"no-cache",
    		"no-cache",
    		""
    };
     
    BufferedReader reader;
    OutputStreamWriter writer;
    URL url;
     
    	url = new URL("http://www.waptrick.com");
    	conn = (HttpURLConnection) url.openConnection();
    	conn.setRequestMethod("POST");
    	conn.setDoOutput(true);
     
    	for(int i=0;i<headers.length;i++) {
    		  conn.setRequestProperty(headersNames[i], headers[i]);
    	}
     
    	writer = new OutputStreamWriter(conn.getOutputStream());
    	post = URLEncoder.encode("darrylsite","UTF-8") + "=" + URLEncoder.encode("darrylsite","UTF-8") + "&" + URLEncoder.encode("***","UTF-8") + "=" + URLEncoder.encode("****","UTF-8");
     
    	writer.write(post);
    	writer.close();
     
    	conn.connect();
     
    	reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
     
    	while((htmlLine = reader.readLine()) != null) {
    		html += "\n" + htmlLine;
    	}
     
    	reader.close();
      System.out.println(html);
    	conn.disconnect();
     
        }
     
    }

  5. #5
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    oui, la page est accessible dans firefox cependant certains sites fonctionnent tout de même, en général ce sont les pages web avec l'extension php qui ne marchent pas??

  6. #6
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Le probleme vient du fait dans les entêtes http que tu as specifier, tu n'as pas indiquer le "Host" qui doit indiquer où trouver la ressource. Le "Host" doit etre le serveur sur le quel se trouve le fichier.
    Aussi, dans les entêtes toujours tu as mal renseigné le parametre "Accept-Encoding".
    Je te poste le code que j'ai utilisé pour le test sur mon site qui est aussi en php et qui ne marchait pas avant les modifications que je viens de faire.
    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
     
    package javaapplication1;
     
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
     
     
    public class Main {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws Exception
        {
            HttpURLConnection conn;
    String line, htmlLine, html = "", post;
     
    String headersNames[] = {
    		"Host",
    		"User-Agent",
    		"Accept",
    		"Accept-Language",
    		"Accept-Encoding",
    		"Accept-Charset",
    		"Keep-Alive",
    		"Connection",
    		"Referer",
    		"Cache-Control",
    		"Pragma",
    		"Cookie"
    };
     
    String headers[] = {
    		"darkpi.100webspace.net",
    		"Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.5",
    		"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    		"fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3",
    		"ISO-8859-1,utf-8;q=0.7,*;q=0.7",
    		"gzip,deflate",
    		"300",
    		"keep-alive",
    		"", // referer
    		"no-cache",
    		"no-cache",
    		""
    };
     
     
    BufferedReader reader;
    OutputStreamWriter writer;
    URL url;
     
    	post = URLEncoder.encode("darrylsite","UTF-8") + "=" + URLEncoder.encode("darrylsite","UTF-8") + "&" + URLEncoder.encode("***","UTF-8") + "=" + URLEncoder.encode("****","UTF-8");
        url = new URL("http://darkpi.100webspace.net/");
     
     
        conn = (HttpURLConnection) url.openConnection();
    	conn.setRequestMethod("POST");
        for(int i=0;i<headers.length;i++)
        {
    		  conn.setRequestProperty(headersNames[i], headers[i]);
    	}
    	conn.setDoOutput(true);
     
    	writer = new OutputStreamWriter(conn.getOutputStream());
    	writer.write(post);
    	writer.close();
     
    	conn.connect();
     
    	reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
     
    	while((htmlLine = reader.readLine()) != null) {
    		html += "\n" + htmlLine;
    	}
     
    	reader.close();
      System.out.println(html);
    	conn.disconnect();
     
        }
     
    }

  7. #7
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    ah merci beaucoup, je voyais pas la solution..

    ok pour le host et pour l'encoding j'ai inversé charset et encoding?

    charset c'est gzip,deflate ?

  8. #8
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par Oprichnik Voir le message
    ah merci beaucoup, je voyais pas la solution..

    ok pour le host et pour l'encoding j'ai inversé charset et encoding?

    charset c'est gzip,deflate ?
    je crois que oui

  9. #9
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    Quand je regarde les entêtes avec tamper data (extension firefox) ou webscarab il m'indique bien comme c'était à la base (je me suis basé la dessus pour établir des headers).

    Tu peux vérifier stp ?

    Merci en tout cas

    PS : Et pour le conn.connect(), c'est au bon endroit (après l'écriture des données à envoyer). Et pour passer des paramètre get, il faut les mettre dans l'url ou comme pour post ?

Discussions similaires

  1. Parser une requête HTTP/GET en c ! regex ?
    Par canard75 dans le forum C
    Réponses: 14
    Dernier message: 06/12/2005, 10h08
  2. [Struts] Ecouter des requêtes HTTP
    Par ledruide dans le forum Struts 1
    Réponses: 16
    Dernier message: 01/12/2005, 11h53
  3. Intercepter les requêtes HTTP et les modifier.
    Par Alexandre T dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 21/09/2005, 19h25
  4. Requête HTTP
    Par hogan dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 15/07/2005, 18h44
  5. [HTTP]Créer une requête http multipart/related
    Par jothi35 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 05/04/2005, 15h32

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