Bonsoir,
Je voudrais écrire un programe en java, qui donne accès à un moteur de recherche et de pouvoir récupérer le résultat de la recherche suivant des mots clés.
Si vous avez des liens ou des pistes ou des idées à me proposer, je suis preneur.
Version imprimable
Bonsoir,
Je voudrais écrire un programe en java, qui donne accès à un moteur de recherche et de pouvoir récupérer le résultat de la recherche suivant des mots clés.
Si vous avez des liens ou des pistes ou des idées à me proposer, je suis preneur.
J'ai essayé d'écrire ce bout de code qui va envoyer ma requete HTTP GET via un petit programme Java sur NetBeans:
L'execution de ce programme devrait afficher du code html, résultat de la requete vers google. Le programme se compile et s'exécute sans problème, cependant, il n'affiche rien. Je ne sais pas pourquoi? J'attends votre aide SVPCode:
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 package recherche; import java.net.*; import java.io.*; public class GoogleQuery{ public static void main(String leopard[]){ // La fameuse requete (star parmis les star) String requete = "GET /pda/search?mrestrict=chtml&output=pda&q=monde+de+merde&btnG=Rechercher&site=search HTTP/1.0rn"; requete += "User-Agent: Opera/9.01 (Windows NT 5.1; U; fr)rn"; requete += "Host: www.google.frrn"; requete += "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1rnrn"; Socket s = null; String chaine = ""; // Pour acceuillir le résultat int c; // recuperation octet par octet try{ // Ouverture d'un socket vers google sur le port 80 (web) s = new Socket("www.google.fr",80); InputStream ent = s.getInputStream(); // IS servant à recevoir le résultat de la requete OutputStream sor = s.getOutputStream(); // OS servant à envoyer la requete // Conversion de la requete String en tableau d'octet byte tab[] = requete.getBytes(); // Envoi de la requete vers google sor.write(tab); // Récuperation du résultat brut while((c=ent.read()) != -1){ chaine += (char)c; } System.out.println(chaine); // Affiche du résultat sur la console }catch(Exception e){ System.out.println(e); // Si il y a une erreur, on l'affiche }finally{ try{ s.close(); // Dans tout les cas, on ferme le socket. }catch(IOException ioe){} } } }
As tu au moins essayé ton GET via un telnet pour valider ta requête?
Bon sinon pour éviter ce genre de merdes, tu as l'API HTTPClient d'apache qui est parfaite pour ce genre de choses...