Mettre des variables dans l’adresse url

Fermé
albert95 Messages postés 24 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 22 février 2013 - 21 mai 2009 à 18:13
albert95 Messages postés 24 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 22 février 2013 - 21 mai 2009 à 19:07
Bonjour à tous et à toutes,

Je cherche à mettre des variables dans l’adresse url http://ichart.yahoo.com/table.csv?s=^FCHI&d=11&e=18&f=2006&g=d&a=2&b=1&c=1990&ignore=.csv
Pour la modifier. J’ai cru pouvoir procéder ainsi :
String isin;
isin="^FCHI";
je remplace FCHI par isin dans l’adresse url : http://ichart.yahoo.com/table.csv?s=isin&d=11&e=18&f=2006&g=d&a=2&b=1&c=1990&ignore=.csv

la compilation se passe bien, mais pas l’exécution :
java.io.FileNotFoundException: http://ichart.yahoo.com/table.csv?s=isin&d=11&e=18&f=2006&g=d&a=2&b=1&c=1990&ignore=.csv
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1239)
at Test.main(Test.java:33)

//*******************//
je suppose donc qu’il y a deux corrections possibles :

1/ String isin;
isin="^FCHI";

cette codification est insuffisante à affecter la valeur FCHI à la variable isin

ou

2/ FCHI est affecté à isin mais l’insertion de isin dans l’url n’est pas correcte...

dans vba pour excel, il faut ajouter un encadrement « & isin & » pour que la variable puisse être affectée à l’adresse url. J’ai essayé cette solution avec le code java, ça ne marche pas.

Merci d’avance à celui/celle qui pourra m’aider à résoudre ce problème

albert

//*******************//


Le code que j’essaie d’adapter :


import java.io.*;
import java.net.*;
public class Test
{
public Test() {
}
public static void main(String argv[])
{
String isin;
isin="^FCHI";
//*********
try
{
URL url= new URL("http://ichart.yahoo.com/table.csv?s=isin&d=11&e=18&f=2006&g=d&a=2&b=1&c=1990&ignore=.csv");
URLConnection con= url.openConnection();

InputStream in = con.getInputStream();
FileOutputStream out= new FileOutputStream("isin.csv");
byte[] buffer= new byte[1024];
int size;

while( (size= in.read(buffer, 0, 1024)) > 0 )
out.write(buffer, 0, size);

System.out.println("le fichier a ete chargé : ");
}
catch(IOException e)
{
e.printStackTrace();
}
}//main
}//class

2 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
21 mai 2009 à 18:23
Heu là comme tu le fais, tu envoies directement la chaine isin et non pas le contenu de la variable
il faut que tu passes par la concaténation :
URL url= new URL("http://ichart.yahoo.com/table.csv?s="+isin+"&d=11&e=18&f=2006&g=d&a=2&b=1&c=1990&ignore=.csv ");
0
albert95 Messages postés 24 Date d'inscription mardi 26 juillet 2005 Statut Membre Dernière intervention 22 février 2013
21 mai 2009 à 19:07
Merci jeangilles,
Je ne pensais pas avoir une réponse aussi rapide.
Ça fonctionne, je vais pouvoir travailler avec un boucle pour charger plusieurs .csv.

... mais une boucle ??? sur excel on met la liste dans la feuille et la boucle lit chaque ligne, l’une après l’autre... avec java je fais comment pour lire la liste dans un .txt ou un .csv ?
AC.PA
ACA.PA
AF.PA
AI.PA

Toutes mes excuses pour l’envoi de tout le code... je ne suis pas un habitué de ce forum et, de plus, je débute en java, alors, pour me faire comprendre.


albert
0