Rechercher : dans
Par :

[Java] utiliser UrlConnection

Dernière réponse le 22 jun 2005 à 14:49:44 marianne31, le 20 jun 2005 à 16:04:23 
 Signaler ce message aux modérateurs

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

1

sebsauvage, le 20 jun 2005 à 16:33:48

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)
{
}

Répondre à sebsauvage

2

marianne31, le 21 jun 2005 à 09:15:44

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

Répondre à marianne31

3

sebsauvage, le 21 jun 2005 à 10:14:11

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

Répondre à sebsauvage

4

marianne31, le 21 jun 2005 à 13:31:10

Merci de ta réponse.

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

Marianne

Répondre à marianne31

5

sebsauvage, le 21 jun 2005 à 16:13:40

Je ne crois pas.
Tu utilises "http.proxyHost", mais selon les version du JDK, il semble que ça soit "proxyHost"

Répondre à sebsauvage

6

marianne31, le 21 jun 2005 à 17:52:06

Ok

j'essaierai demain

merci

Répondre à marianne31

7

marianne31, le 22 jun 2005 à 10:33:01

Rebonjour,

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

mais ca me met quand meme une erreur 407 ! :-(

Répondre à marianne31

8

sebsauvage, le 22 jun 2005 à 10:46:31

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.

Répondre à sebsauvage

9

marianne31, le 22 jun 2005 à 12:02:06

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

++

Répondre à marianne31

10

sebsauvage, le 22 jun 2005 à 12:53:59

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.

Répondre à sebsauvage

11

marianne31, le 22 jun 2005 à 13:56:13

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

Répondre à marianne31

12

marianne31, le 22 jun 2005 à 14:08:31

C http://www.wmo.ch

erreur de frappe :-)

Répondre à marianne31

13

 sebsauvage, le 22 jun 2005 à 14:49:44

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.

Répondre à sebsauvage
Collection CommentÇaMarche.net