Bonjour à tous,

Dans le cadre d'un projet, je développe une application. Dans l'une des classes, je dois me connecter à une page web et insérer une valeur dans le champ présent sur cette page puis lancer la recherche et insérer les valeurs de la recherche dans mon application.
Voici mon problème, dans le code html de cette page, le "Rechercher" est un bouton et non un input et il ne posséde pas de name, je ne sais donc pas comment procéder.

Voici mon code actuel qui ne fonctionne pas :

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 String getResult() throws IOException{
        String html_result="";
        // On envoie un formulaire POST en renseignant les informations de connexion
        String url=this.url;
        Map<String, String> dataDiag = new HashMap<String, String>();
        dataDiag.put("ndi", ndi_vga);
        dataDiag.put("bt1", "Rechercher");
        // URL
        URL urlDiag =new URL(null, url,new sun.net.www.protocol.https.Handler());
        // Création de la connexion
        HttpsURLConnection connDiag = (HttpsURLConnection) urlDiag.openConnection();
        connDiag.setRequestMethod("POST");
        connDiag.setRequestProperty("Connection","keep-alive");
        connDiag.setDoOutput(true);
        connDiag.setDoInput(true);
        connDiag.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0");
        DataOutputStream outDiag=null;
        try {
            outDiag = new DataOutputStream(connDiag.getOutputStream());
        } 
        catch (IOException e) {
            // TODO Auto-generated catch block
            html_result="erreur proxy";
            //e.printStackTrace();
        }
        Set keysDiag = dataDiag.keySet();
        Iterator keyIterDiag = keysDiag.iterator();
        String contentDiag = "";
        for(int i=0; keyIterDiag.hasNext(); i++){
            Object key = keyIterDiag.next();
            if(i!=0)
                contentDiag += "&";
            contentDiag += key + "=" + URLEncoder.encode(dataDiag.get(key), "UTF-8");
        }
        outDiag.writeBytes(contentDiag);
        outDiag.flush();
        outDiag.close();
        // On met le résultat en mémoire
        BufferedReader in = new BufferedReader(new InputStreamReader(connDiag.getInputStream()));
        String lineDiag = "";
        // On assigne le résultat à la chaine html_result
        while((lineDiag=in.readLine())!=null)
            html_result+=lineDiag;
        in.close();
        // On récupére le contenu de la page
        // Si c'est du SDSL, le code source contiendra "numero_ip_geo"
        return html_result;
    }
 
    public void parseHtml(String arg0){
        // On cherche une information dans le code HTML
        // Elle se trouve entre pattern1 et pattern2
        String pattern1="<div class=\"tableau_activation tableau\" id=\"saphir\">";
        String pattern2="</div>";
        String regexString = Pattern.quote(pattern1) + "(.*?)" + Pattern.quote(pattern2);
        Pattern pattern = Pattern.compile(regexString);
        Matcher matcher = pattern.matcher(arg0);
        String textInBetween="";
        while (matcher.find())
            textInBetween = matcher.group(1);
        String textToParse="<div>"+textInBetween+"</div>";
        Document doc=Jsoup.parse(textToParse);
        rows = doc.select("div class");
        Elements nameTds=rows.get(0).select("div id");
        for (int i=0;i<nameTds.size();i++){
            cols.add(nameTds.get(i).text());
        }
    }

Voici un aperçu de la page HTML en question et de son code :

Nom : cccccc.PNG
Affichages : 342
Taille : 33,5 Ko


Je vous remercie d'avance, j'ai épuise tous les liens web possibles et imaginables mais sans grand résultat.