Bonjour tout le monde,
Depuis quelques jours que suis sur un projet j2me et basé sur des connections HTTP.
Mon MIDLET est initialisé comme suit:
Donc au démarrage j'ai un formulaire assez simple de login et de mot de passe.
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 /**Initialise le MIDLET avec le formulaire d'accueil. */ public void startApp() { mainscreen (""); } /**Affiche l'ecran d'accueil. */ private void mainscreen(String msg) { form = new Form ("Connexion au DOMOBOX"); StringItem notifier = new StringItem ("",msg); form.append(login); form.append(password); form.append(notifier); display = Display.getDisplay(this); setCommands (form,true); display.setCurrent(form); }
L'utilisateur s'authentifie si cela se passe bien, je notifie par un message 'OK' et j'initialise l'ecran suivant.
Mais problème c'est lorsque l'on fournit pas le bon login et mot de passe, je dévrais à la base pouvoir notifier par un message "Erreur d'authentification" et rester toujours sur le même écran (login et mot de passe). Mais c'est pas le cas j'ai un bien jolie message 'Uncaught exception java/lang/IllegalStateException'
C'est ce bout de code qui me permet de gérer tout cela :
Merci d'avance pour votre aide.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 private void seConnecter(String u, String p) { /**Pour se connecter au serveur HTTP*/ HttpConnection c = null; /**Réponse du serveur HTTP sous forme de flux*/ InputStream is = null; try { c = (HttpConnection)Connector.open(url+"/connect/"+u+"/"+p); c.setRequestMethod(HttpConnection.GET); DataInputStream dis = new DataInputStream (c.openInputStream()); /**Récupération byte par byte de la réponse du serveur*/ int ch; while ((ch = dis.read()) != -1) { buffer.append((char)ch); } } catch( Exception e ) { e.printStackTrace(); buffer.append( "ERROR CONNECTION HTTP" ); } /**Free i/o Stream et Connection HTTP*/ finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } if (c != null) { try { c.close(); } catch (IOException e) { e.printStackTrace(); } } } String result = new String (buffer.toString()); if ((int)result.length() == 9) { StringItem st = new StringItem ("","OK"); form = new Form ("Connection..."); form.append(st); setCommands (form,false); display.setCurrent(form); } else { mainscreen("erreur d'authentification"); } } }
Partager