Pourquoi URLConnection fonctionne sur un pc, pas sur l’autre ??

Pourquoi URLConnection fonctionne sur un pc, pas sur l’autre ?? - Java - Programmation

Marsh Posté le 22-09-2005 à 17:22:09    


Bonjour à tous et à toutes, spécialistes de java,
 
Je cherche depuis quelques temps un code qui permette de lire une page internet (historiques de cours des actions, par exemple :
http://ichart8.finance.ukl.yahoo.c [...] gnore=.csv
 
Pour comprendre le fonctionnement de chaque étape, dans un premier temps, je travaille   sur URLConnection
 
J’utilise le  code suivant (plus bas, entre balises ) sur 2 pc, l’un a windows 2000, l’autre windows xp.
Il ne fonctionne pas sur celui où est installé windows xp.  :pt1cable:  
 
- A votre avis, l’erreur vint de xp ?  ou bien d’une mauvaise installation de Jcreator LE ??
 
Comment y remédier ?
 
- Par ailleurs, pourriez-vous me dire comment procéder pour récupérer la page web à partir de la fenêtre DOS, pour la faire apparaître dans une fenêtre applet ou swing ?
 
Merci d’avance pour toutes vos suggestions
 
albert
 

Citation :


import java.net.*;
import java.io.*;
 
public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
 URL yahoo = new URL("http://www.yahoo.com/" );
 URLConnection yahooConnection = yahoo.openConnection();
 DataInputStream in = new DataInputStream(
     yahooConnection.getInputStream());
 String inputLine;
 
 while ((inputLine = in.readLine()) != null)
     System.out.println(inputLine);
 
 in.close();
    }
}


 
1/ Je compile (avec Jcreator LE) et j’obtiens le même message sur les 2 pc :
 
Note: C:\JavaSun\tut-examples\networking\urls\example\URLReader.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
 
Process completed.
 
2/ Ensuite j’exécute (Execute File)sur le pc où est installé windows 2000, une fenêtre DOS s’ouvre avec le code html de la page yahoo
Adresse de la fenêtre DOS :  
 

Citation :


C:\Program Files\Xinox Software\Jcreator V3LE\GE2001.exe


 
 
 
Alors que sur windows xp, j’obtiens  

Citation :


 
--------------------Configuration: inp - j2sdk1.4.2_08 <Default> - <Default>--------------------
java.net.UnknownHostException: www.yahoo.com
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:153)
        at java.net.Socket.connect(Socket.java:452)
        at java.net.Socket.connect(Socket.java:402)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:139)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:402)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:618)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:306)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:267)
        at sun.net.www.http.HttpClient.New(HttpClient.java:339)
        at sun.net.www.http.HttpClient.New(HttpClient.java:320)
        at sun.net.www.http.HttpClient.New(HttpClient.java:315)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:521)
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:498)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:626)
        at URLConnectionReader.main(URLConnectionReader.java:8)
Exception in thread "main"  
Process completed.


 
 
 

Reply

Marsh Posté le 22-09-2005 à 17:22:09   

Reply

Marsh Posté le 22-09-2005 à 17:46:17    

essaie de faire un ping www.yahoo.com de ta machine XP...

Reply

Marsh Posté le 22-09-2005 à 20:09:30    

Bonsoir beemer,
 
 
Le ping  sur pc avec windows xp ouvre une fenêtre DOS :envoi d’une requête ‘ping’ sur www.yahoo.akadns.net [216.109.117.106] avec 32 octets de données
 
Réponse de 216.109.118.65 : octets=32 temps =128 ms TTL=53  
 
Un autre ping donne :
Réponse de 216.109.117.207 : octets=32 temps =128 ms TTL=53
 
Je ne sais pas interpréter la réponse, mais je suppose que la connexion s’effectue ?
 
qu'est-ce que je peux en tirer pour l'application java ?
 :??:  
 
merci de m'aider
albert

Reply

Marsh Posté le 22-09-2005 à 23:57:23    

Oui, d'apres la commande ping, la resolution DNS de yahoo.com s'effectue sur les deux machines. Le probleme ne vient donc pas de la.
 
Tu utilises une method deprecated ce qui m'amene a me demander si tes deux PC ont la meme version de JVM
 
Ouvre une fenetre dos et tape:
 
"java -version" sur tes deux machines....
 
Autre suggestion: Y aurait-il un firewall sur la machine XP ?
Autre suggestion: N'utilise pas cette satane method deprecated :D  
 

albert95 a écrit :

Bonsoir beemer,
 
 
Le ping  sur pc avec windows xp ouvre une fenêtre DOS :envoi d’une requête ‘ping’ sur www.yahoo.akadns.net [216.109.117.106] avec 32 octets de données
 
Réponse de 216.109.118.65 : octets=32 temps =128 ms TTL=53  
 
Un autre ping donne :
Réponse de 216.109.117.207 : octets=32 temps =128 ms TTL=53
 
Je ne sais pas interpréter la réponse, mais je suppose que la connexion s’effectue ?
 
qu'est-ce que je peux en tirer pour l'application java ?
 :??:  
 
merci de m'aider
albert


Message édité par bartleby le 23-09-2005 à 00:00:50
Reply

Marsh Posté le 23-09-2005 à 15:13:47    

Bonjour bartleby,
 
j'ai suivi tes suggestions à la lettre :

Citation :

N'utilise pas cette satane method deprecated


 
Je ne sais pas où elle est, en tous cas je ne la vois pas dans le code. Elle apparaît seulement après compilation dans la fenêtre output : java uses or overrides a deprecated API
 
 
Tests :
- sur windows 2000, le pc est en reseau et le Cmd ne marche pas  
 
- sur winows xp :
C:\Documents and Settings\HP_Propriétaire>java -version
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)
 
Une recherche sur sur windows 2000 donne un Jre1.5.0 et un JDK 1.5.0-04
Je suppose qu’il n’y a pas de différences sur les versions java.
 
- Je désactive le firewall (zonealarm) => le code ne fonctionne pas mieux.
 
- Je fais un essai sur xp avec NetBeans : ça marche, j’obtiens du html et du javascript dans la fenêtre de sortie :
J’en déduis une mauvaise installation du Jcreator sur xp. Je ferai une installation ce soir, je serai plus dispo.
 :)  
 
Maintenant que ce pb est bientôt résolu, il reste toujours en suspens ce mystère : par quel miracle (code miraculeux)  :pt1cable: peut-on récupérer ce code html/javascript, pour faire apparaître l’historique des cours de http://ichart8.finance.ukl.yahoo.c [...] gnore=.csv  
dans une fenêtre swing (ou le sauvegarder en texte sur le disque dur) ?
 
 :??:  
cordialement
albert
 
 
 

Reply

Marsh Posté le 23-09-2005 à 20:15:17    

bingo!!
j'ai réinstallé JCreator et à présent la connexion internet s'effectue, le résultat apparaît dans une fenêtre DOS. Je n'ai plus qu'à trouver le moyen de récupérer les données dans une applet
 
merci beemer, bartleby pour votre aide au diagnostic, je n'y serais pas arrivé seul
 :jap:  
albert

Reply

Marsh Posté le 23-09-2005 à 20:45:38    

albert,
 
Pour trouver les methodes deprecated, il faut utiliser la commande:
 
javac -deprecation MyClass.java
 
Ou alors tu dois avoir une case a cocher dans ton IDE.  
 
Pour le second probleme dont tu parles, j'ai regarde le contenu du fichier csv dont tu as donne l'URL et il te suffit simplement de le parcourri avec un StringTonkenizer (il semble que les valeurs soient separees par une virgule) et de tout mettre dans un JTable.  
 
Regarde ce lien a l'air pas mal:
 
http://72.14.207.104/search?q=cach [...] +csv&hl=en
 
 je suis d'accord sur la method d'etendre la classe avec une method qui fait ce qui est decrit juste au dessus:
 

Reply

Marsh Posté le 24-09-2005 à 13:20:06    


Bonjour bartleby,
 
Les valeurs inscrites dans le fichier téléchargé, sont en effet séparées par des virgules.
A la suite de ton conseil, j'ai travaillé sur Class StringTokenizer.
 

Citation :

il te suffit simplement de le parcourri avec un StringTonkenizer


 
- si je comprends bien, parcourir avec StringTokenizer permet de séparer toutes les informations comprises entre les virgules
http://java.sun.com/j2se/1.4.2/doc [...] nizer.html
 
« La classe StringTokenizer permet à une application de décomposer  
une chaîne de caractères en jetons » :
http://www.laltruiste.com/document [...] nizer.html

Citation :

et de tout mettre dans un JTable


 
je suis allé à l’adresse :
http://72.14.207.104/search?q=cach [...] +csv&hl=en
- ostermillerutils_1_05_00.jar ne donne pas de méthodologie d’utilisation
 
- il semble qu’il soit nécessaire d’utiliser également un BufferedReader, non ?
"1. read input 1 line at a time with a BufferedReader"
http://java.sun.com/j2se/1.4.2/doc [...] eader.html
"La classe BufferedReader lit du texte à partir d'un flux d'entrée de caractères, mettant en mémoire tampon les caractères afin de fournir une plus grande efficacité pour la lecture de caractères, de tableaux et de lignes."
 
http://www.laltruiste.com/document [...] eader.html
 
 
j’ai appris beaucoup avec ces recherches, mais je ne sais toujours pas récupérer les données téléchargées dans un JTable.  
Est-ce que tu peux me donner un exemple de code ? ou peut-être existe-t-il un tuto sur le sujet ?
 
Merci d’avance  
albert
 
 
 

Reply

Marsh Posté le 26-09-2005 à 18:36:29    

Envoi moi ton adresse email, j'ai un bout de code, mais j'ai nul part ou le mettre :D ...
 

albert95 a écrit :

Bonjour bartleby,
 
Les valeurs inscrites dans le fichier téléchargé, sont en effet séparées par des virgules.
A la suite de ton conseil, j'ai travaillé sur Class StringTokenizer.
 

Citation :

il te suffit simplement de le parcourri avec un StringTonkenizer


 
- si je comprends bien, parcourir avec StringTokenizer permet de séparer toutes les informations comprises entre les virgules
http://java.sun.com/j2se/1.4.2/doc [...] nizer.html
 
« La classe StringTokenizer permet à une application de décomposer  
une chaîne de caractères en jetons » :
http://www.laltruiste.com/document [...] nizer.html

Citation :

et de tout mettre dans un JTable


 
je suis allé à l’adresse :
http://72.14.207.104/search?q=cach [...] +csv&hl=en
- ostermillerutils_1_05_00.jar ne donne pas de méthodologie d’utilisation
 
- il semble qu’il soit nécessaire d’utiliser également un BufferedReader, non ?
"1. read input 1 line at a time with a BufferedReader"
http://java.sun.com/j2se/1.4.2/doc [...] eader.html
"La classe BufferedReader lit du texte à partir d'un flux d'entrée de caractères, mettant en mémoire tampon les caractères afin de fournir une plus grande efficacité pour la lecture de caractères, de tableaux et de lignes."
 
http://www.laltruiste.com/document [...] eader.html
 
 
j’ai appris beaucoup avec ces recherches, mais je ne sais toujours pas récupérer les données téléchargées dans un JTable.  
Est-ce que tu peux me donner un exemple de code ? ou peut-être existe-t-il un tuto sur le sujet ?
 
Merci d’avance  
albert


Reply

Marsh Posté le 26-09-2005 à 22:26:01    

bonsoir bartleby,
je viens d'envoyer un mail dans ta boite HardWare
 
albert

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed