[Java] utiliser UrlConnection

Fermé
marianne31 Messages postés 68 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 29 mars 2006 - 20 juin 2005 à 16:04
 zemzoum89 - 2 nov. 2010 à 20:39
Bonjour,

j'utilise la classe Java UrlConnection pour me connecter a une URL ;-)

voila le code :
URL url=new URL(url());
URLConnection c=url.openConnection();
c.connect () ;


url () est la fonction qui recupere l'URL a utiliser.

Mon probleme est : comment on sait que la connection est réussie ? est que c'est quand il n'y a pas de levée d'exception.

En fait quand l'URL n'est pas joignable, ca bloque mon site donc il faudrait que je puisse tester avant de m'y connecter si l'URL est bonne.

avez vous une idée ?

Marianne
A voir également:

14 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
22 juin 2005 à 14:49
En Java je ne me souviens plus, mais il y a un timeout par défaut pour les sockets (qui s'applique donc aussi à HTTP).
J'ignore comment ça se modifie en Java.

Et puis dans le cas d'un proxy, le proxy a son propre timeout et renverra un code d'erreur HTTP au bout de ce timeout.
1
URLConnection urlConnection;
InputStream httpStream;
String url ="http://localhost:8080/exist/rest/db/hachette/test.xqy";
try
{
  URL fileURL = new URL(url); 
  urlConnection = fileURL.openConnection();     // open URL (HTTP query)
  httpStream = urlConnection.getInputStream();  // Open data stream
}
catch(java.net.MalformedURLException ex)
{
}
catch(java.io.IOException ex)
{
}


voici le code que j'ai utiliser et la j'ai donné le lien vers une requete xquery normalement je devrai avoir le résultat de ma requete mais la il me dit file not found est ce uqe c'est la bonne maniere de lui donner une url pour une base de données exist ou non ?
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
20 juin 2005 à 16:33
Un try/catch est une excellente idée !

URLConnection urlConnection;
InputStream httpStream;
try
{
  URL fileURL = new URL("http://monurl.com"); 
  urlConnection = fileURL.openConnection();     // open URL (HTTP query)
  httpStream = urlConnection.getInputStream();  // Open data stream
}
catch(java.net.MalformedURLException ex)
{
}
catch(java.io.IOException ex)
{
}
0
marianne31 Messages postés 68 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 29 mars 2006 4
21 juin 2005 à 09:15
Bonjour,

merci pour ta réponse

j'avais déjà essayer de faire ca, mais ca me di que toutes mes URL sont mauvaises avec une erreur 407.

D'après ce que j'ai compris 407, c'est quand il y a a un problème avec le proxy.

pourtant je le configure.

Properties props = System.getProperties();
props.put("firewallSet", "true");
props.put("firewallHost", "proxy.xxx.fr");
props.put("firewallPort", "8080");
props.put ("http.proxyHost", "proxy.xxx.fr");
props.put ("http.proxyPort", "8080");

Si tu as une autre excellente idée ... ;-)

Marianne
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
21 juin 2005 à 10:14
Apparemment, le nom des variable a changé depuis le JDK 1.3
(grrr... raz-le-bol de Sun !)

http://www.rgagnon.com/javadetails/java-0085.html
0
marianne31 Messages postés 68 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 29 mars 2006 4
21 juin 2005 à 13:31
merci de ta réponse.

mais je pense avoir les bons noms de variables. Enfin, il me semble que c'est les meme.

Marianne
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
21 juin 2005 à 16:13
Je ne crois pas.
Tu utilises "http.proxyHost", mais selon les version du JDK, il semble que ça soit "proxyHost"
0
marianne31 Messages postés 68 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 29 mars 2006 4
21 juin 2005 à 17:52
ok

j'essaierai demain

merci
0
marianne31 Messages postés 68 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 29 mars 2006 4
22 juin 2005 à 10:33
rebonjour,

non j'ai les bons noms de variables ...

mais ca me met quand meme une erreur 407 ! :-(
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
22 juin 2005 à 10:46
C'est que le login/mot de passe ne soit pas être correctement transmis.

Est-ce que tu pourrais installer un logiciel comme Proxomitron pour voir exactement la tête des requêtes HTTP envoyées par ton client Java ?

ça permettrait de voir si l'entête contient bien tout le nécessaire.
0
marianne31 Messages postés 68 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 29 mars 2006 4
22 juin 2005 à 12:02
euh je ne connais pas du tout mais je peux essayer

est ce que ca marche aussi sous Mac OS X ?

bon je vais voir

++
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 662
22 juin 2005 à 12:53
ah non, Proxomitron ne fonctionne que sous Windows.

Essai de trouver un proxy qui te permettrait de voir l'intégralité des entêtes HTTP: ça aide pour voir si le client envoie les bonnes informations.
0
marianne31 Messages postés 68 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 29 mars 2006 4
22 juin 2005 à 13:56
ca y est ca marche !

enfin !

mon probleme c que des fois on tombe sur des urls qui ne répondent pas

par exemple http://www/wmo.ch

enfin je sais pas comment expliquer mais en fait mon appli attend que la page est finie de charger pour continuer, donc dans le cas de cette url, c'est indéfinie
et mon appli est bloquée.

est ce qu'il y a une solution pour obliger les pages a se terminer, enfin je sais pas commment on dit mais, est qu'il n'y a pas un timeout qu'on peut paramétrer pour qu'au bout de 10s par exemple ou est elle est bloquee elle arrete de chercher .

Merci

Marianne
0
marianne31 Messages postés 68 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 29 mars 2006 4
22 juin 2005 à 14:08
c http://www.wmo.ch

erreur de frappe :-)
-1