Profete162 Posté(e) 22 septembre 2009 Share Posté(e) 22 septembre 2009 (modifié) Bonjour à tous, Pour ma première appli ( ma premiere idée de photos HDR était ridicule), j'aimerais interroger une page web qui contient des formulaires à remplir ( exemple: itinéraires de train-avion, etc...) et affichet les résultats dans mon appli. Je pense que c'est un bon but simple, mais j'ai besoin de quelques lignes ou d'applis similaire à décortiquer pour me faire une idée. Possédez vous des snippet ou un tuto java/android/autre qui me permettrait de me faire une idée de la marche à suivre? C'est une technique un peu particulière qui diffère de tous les tutos que je trouve. Je vous remercie d'avance pour tous les renseignements que vous pourriez m'apporter.! EDIT: Je pense que j'ai besoin de 2 infos claires et pas trop difficiles (je l'espère.. lol) 1) comment se connecter à une page web et remplir des champs d'un formulaire? 2) comment remettre en page les résultats recus? RE-EDIT: J'ai trouvé ceci, mais je n'y comprends rien, est-ce une piste à crauser? http://www.developpez.net/forums/d446518/java/general-java/langage/remplir-formulaire-html-java/ Modifié 22 septembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 22 septembre 2009 Auteur Share Posté(e) 22 septembre 2009 (modifié) Pour vous donner plus d'infos, je pense qu'il s'agit d'un formulaire de type "GET"( je viens d'apprendre le mot à l'instant) Je pense donc que cela sera un peu plus facile pour moi :-p car l'adresse est de type: http: //hari.b-holding.be/Hafas/bin/query.exe/fn?&REQ0JourneyStopsS0A=1&REQ0JourneyStopsS0G=mons&REQ0JourneyStopsZ0A=1&REQ0JourneyStopsZ0G=charleroi-sud&REQ0JourneyDate=22.009.09&REQ0JourneyTime=22:005&Timesel=depart&ViaName=&ViaMode=NEE&DateMode=ANDERS&PLANNER=TRUE&start=1&queryPageDisplayed=yes Je pense qu'en fait, je n'aurai pas besoin de remplir le formulaire car toutes les infos sont comprises dans l'URL! Modifié 22 septembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 22 septembre 2009 Share Posté(e) 22 septembre 2009 d après toi Ufo il fait comment pour lire les infos du forum ? :D poste moi le lien d un formulaire et je te donne les billes pour le manipuler. org.apache est ton ami :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 22 septembre 2009 Auteur Share Posté(e) 22 septembre 2009 Merci pour ton aide: Le formulaire est ici: http://hari.b-holding.be/Hafas/bin/query.exe/fn? Un grand merci d'avance pour les coups de pouce que tu vas me donner! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 22 septembre 2009 Share Posté(e) 22 septembre 2009 pfiou.... bon c'est chaud :D le pb étant que t as une première requête qui va chercher la corespondance entre deux saisies de villes et des villes existantes. En gros tu peux tape depart : B arrivée : C ça te rempli deux listes de choix.... plus toutes les options du formulaire ...tu vas t'amuser. et en plus apparement t'as pas le droit : http://www.b-rail.be/main/F/legal/copyright/index.php mais bon, en gros ton GET ça marche comme ça: dans ta page si tu as un formulaire avec une saisie et un bouton, tu auras dans le code HTML de la page un truc comme ça: un texte appelé montexte et un bouton et l action toto.php. si tu appelle la page via tonsite/toto.php?montexte=bonjour c'est comme si tu avais tapé bonjour dans le texte ...le problème c'est que si tu regarde le code de ton formulaire...il est compliqué. ET l'action prend une sale tête à la fin: http://hari.b-holding.be/hafas/bin/query.exe/fn?seqnr=1&ident=0f.0429611.1253653262&OK#focus le ident=pleindetrucsalaconquejepigepasdoucavien et surtout le liste de choix de villes qui n apparait pas dans le code....donc surement récupéré en ajax quelquepart :/ là t'es mal barré (c'est faisable mais c'est ptetre plus chiant que le hdr :lol: :lol: :lol: Bon en tout cas pour faire un get: dans l example url est la chaine que tu as donné, http://xxx/toto.html?bidule=truc&etc httpclient = new DefaultHttpClient(); HttpGet get = new HttpGet(url); HttpResponse response; response = _httpclient.execute(get); HttpEntity entity = response.getEntity(); if (entity != null) { ICI LES TRUCS A FAIRE entity.consumeContent(); } } catch (ClientProtocolException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } alors les trucs à faire c'est récupérer un inputstream à partir de la response et balancer ça dans je sais plus quoi pour avoir le texte de la page, ou directement la traiter en XML.....si tu veux je fais un exemple sur la page de recherche google qui est vachement plus simple ..... lol Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 22 septembre 2009 Share Posté(e) 22 septembre 2009 en fait là si tu a juste découvert la notion de get et post tu t aventure dans un truc trop tendu ...... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 22 septembre 2009 Auteur Share Posté(e) 22 septembre 2009 (modifié) Merci pour toutes les infos, je vais lire attentivement ton message! Je pense que c'est plus simple que ce que tu dis: si j'arrive à joindre cette page en remplacant les caracteres en gras suivants: (pour éviter qu'il ne mette automatiquement des balises html sur le forum, j'ai retiré le http de l'adresse //hari.b-holding.be/Hafas/bin/query.exe/fn?&REQ0JourneyStopsS0A=1&REQ0JourneyStopsS0G=VilleA&REQ0JourneyStopsZ0A=1&REQ0JourneyStopsZ0G=VilleB&REQ0JourneyDate=22.009.09&REQ0JourneyTime=22:005&Timesel=depart&ViaName=&ViaMode=NEE&DateMode=ANDERS&PLANNER=TRUE&start=1&queryPageDisplayed=yes ca passera, non? EDIT: merci pour l'avertissement "légal" sur le site. Je suis en train d'écrire un mail à la SNCB pour demander si je peux developper l'appli. Au pire, je ne la distribue pas et m'en sers d'exercice. Modifié 22 septembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 22 septembre 2009 Share Posté(e) 22 septembre 2009 ah oui ça a l air de passer mais la ville doit etre très précise avec arrêt et tou: //hari.b-holding.be/Hafas/bin/query.exe/fn?&REQ0JourneyStopsS0A=1&REQ0JourneyStopsS0G=bruxelles-midi%20[b]&REQ0JourneyStopsZ0A=1&REQ0JourneyStopsZ0G=Ville-Pommeroeul%20[b]&REQ0JourneyDate=22.009.09&REQ0JourneyTime=22:005&Timesel=depart&ViaName=&ViaMode=NEE&DateMode=ANDERS&PLANNER=TRUE&start=1&queryPageDisplayed=yes l j ai mis Bruxelles-midi [ B ] avec %20 pour l espace... Va falloir que tu ait toutes les gares et arrets prédéfinis.....gloups mais dans ce cas ça marche. Donc méthode : faire un get avec apache (HttpGet), récupérer la HttpResponse, la mettre dans un xml ou String pour décomposer le résultat. avantage du String : tu peux couper la partie qui t interesse (genre le tableau de corresponsances avec horaires) pour la mettre dans un webview et l afficher direct sans manip. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 22 septembre 2009 Share Posté(e) 22 septembre 2009 bon je te file un code (tuto si j y arrive) pour choper une page et en récupérer un String. (mais pas avant demain soir) En gros on chope google et on injecte le resultat dans un WebView. (ça sers à rien...lol) après tu n aura plus qu'à recup ta page de trains...mais bon en extraire les resultats va être tendu. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 22 septembre 2009 Auteur Share Posté(e) 22 septembre 2009 (modifié) bon je te file un code (tuto si j y arrive) pour choper une pageet en récupérer un String. (mais pas avant demain soir) En gros on chope google et on injecte le resultat dans un WebView. (ça sers à rien...lol) après tu n aura plus qu'à recup ta page de trains...mais bon en extraire les resultats va être tendu. Je me rends bien compte, mais rien que le faire avec Google sera déjà un excellent exercice et un tuto qui, je le pense, servira à plein de monde! (J'ai mon appli qui demande les 2 champs départ-arrivée et qui reconstruit l'URL désirée en string, donc une fois que j'aurai le code HTML dans une textview, je serai super content!.) Je ne t'en demanderai pas plus, promis. Modifié 22 septembre 2009 par Profete162 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 23 septembre 2009 Auteur Share Posté(e) 23 septembre 2009 En fait, j'ai trouvé ceci: setContentView(R.layout.main); Toast my_message = Toast.makeText(this,"Message1",1); my_message.show(); try { URL url = new URL("http://www.google.com"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str; while ((str = in.readLine()) != null) { System.out.println(str); my_message = Toast.makeText(this,"Message2",1); my_message.show(); } in.close(); } catch (MalformedURLException e) {} catch (IOException e) {} Qui ne fonctionne malheureusment pas... Le message1 s'affiche bien, mais pas le second Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 23 septembre 2009 Share Posté(e) 23 septembre 2009 t'es fou !!!!!! une fois en faisant une boucle foirée sur des toasts il m a fallu 30 minutes pour qu'ils s'affichent tous !!!!!! mets ton texte dans une chaine et sors la avec System.out.println(tachaine) ou Log.d("ton applis",tachaine) et ça sors sur le logcat que tu consulte via la vue DDMS dans eclipse. (pour débugger c'est sympa) Sinon tu pose un point d'arret et tu lance en debug (mais ça rame) des questions sur DDMS ou le point d'arret ? Au passage petite habitude (pas forcément correcte sur mobile) à prendre. T upeux faire: Toast.makeText(this,"Message1",1).show(); ça évite la variable inutile. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
PenPen Posté(e) 23 septembre 2009 Share Posté(e) 23 septembre 2009 j'espère que la sncb va accepter ^^ (bein oui ^^) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.