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 :

[internet]faire une requete HTTP.


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    593
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 593
    Par défaut [internet]faire une requete HTTP.
    Bonjour,

    je developpe une petite appli permettant de mettre a jour son ip chez dyndns.

    l'url est de la forme:
    http://monlogin:monpassword@members.dyndns.org/nic/update?system=dyndns&hostname=mondomaine&myip=monip&wildcard=OFF&backmx=NO&offline=NO"

    pour mettre a jour je faire donc:

    j'ai codé ceci:

    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
     
    try 
    		{
    			URL url = new URL(urlSite);
     
    			URLConnection _urlConnection = url.openConnection();
    			InputStream in = _urlConnection.getInputStream();
    			int c = in.read();
     
    			StringBuilder build = new StringBuilder();
     
    			while (c != -1) 
    			{
    				build.append((char) c);
     
    				c = in.read();
    			}
     
    			String str = build.toString();
     
    			System.out.println("sortie de l'update: "+ str);
    		}
    		catch(MalformedURLException ex)
    		{
    			System.out.println("Exception URL: " + ex.getMessage());
    		}
    		catch(IOException ex)
    		{
    			System.out.println("Exception IO : " + ex.getMessage());
    		}
    mais ca me sort un erreur ioexception 401 page not found.

    alors que si je test l'url contenu dans la variable urlSite dans firefox, ca marche nickel.

    Ou est l'erreur svp?

    merci

  2. #2
    Membre éclairé Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Par défaut
    essaye de faire ce que tu fais en java avec un telnet

    Sinon, moi j'utiliserai directement des socket

  3. #3
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Faudrait pas rajouter le port ? genre un pti ":80" derrière ?

  4. #4
    Membre éclairé
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    593
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 593
    Par défaut
    SI je recois une erreur 401 http bad request c'est que je passe par le 80 forcement.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Non, le code d'erreur que tu reçois n'a rien à voir avec le port utilisé. Tu pourrais avoir une 401 avec n'importe quel port. Enfin bon là il doit prendre le port 80 par défaut.

    Tu peux essayer d'utiliser Ethereal ou un truc dans le genre pour voir quelle est la requête HTTP qu'il envoie.

  6. #6
    Membre éclairé
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    593
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 593
    Par défaut
    J'ai sniffer ce qui se passait avec ethereal, ca passe bien par le port 80, je comprend pas!!!

    J'ai pompé un code deja fait que j'ai legerement modifier:

    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
     
    private void upp(String addr)
    	{
    		try {
    	        // Construct data
    	        String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
    	        data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
     
    	        // Send data
    	        URL url = new URL(addr);
    	        URLConnection conn = url.openConnection();
    	        conn.setDoOutput(true);
    	        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    	        wr.write(data);
    	        wr.flush();
     
    	        // Get the response
    	        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    	        String line;
    	        while ((line = rd.readLine()) != null) {
    	            // Process line...
    	        }
    	        wr.close();
    	        rd.close();
    	    } catch (Exception e) {
    	    	System.out.println(e.getMessage());
    	    }
    	}
    toujours cette fichu erreur 401

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Server returned HTTP response code: 401 for URL: http://login:pass@members.dyndns.org/nic/update?sys...
    merci

Discussions similaires

  1. Faire un bouton qui fait une requete HTTP ?
    Par fraginfo dans le forum VB.NET
    Réponses: 0
    Dernier message: 03/02/2010, 18h51
  2. Réponses: 6
    Dernier message: 13/03/2009, 12h31
  3. Réponses: 5
    Dernier message: 28/09/2007, 17h56
  4. [http] comment faire une requete http
    Par Slimer dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 28/07/2004, 11h48
  5. Réponses: 2
    Dernier message: 03/05/2004, 12h13

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