Bonjour � tous,
Tout d'abord d�sol�, j'ai post� ce message d'abord dans la cat�gorie Logging avant de me raviser et de le poster ici o� je pense qu'il a plus sa place.
Je n'ai pas trouv� comment le supprimer (si c'est possible) dans Logging
J'essaye de reproduire un locale (pour mon utilisation personnelle) une copie de quelques articles du code de la propri�t� intellectuelle depuis L�gifrance.
J'utilise pour cela l'API HttpComponents Client 4.1 d'Apache. Pas de probl�me jusque l�.
Mon probl�me commence lorsque je t�l�charge certaines pages qui m'int�ressent avec mon client maison et que je ne r�cup�re pas la totalit� du code HTML que j'aurais avec un navigateur.
J'ai fait diff�rents tests et je pense que mon probl�me vient du fait que le serveur ne reconnait pas ma session.
Voici le type de page que je souhaite obtenir :
http://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid=26922729D310BF83202B76B54B9F16E7.tpdjo03v_1?idArticle=LEGIARTI000006278868&cidTexte=LEGITEXT000006069414&dateTexte=20110811
Ce qui m'int�resse surtout c'est de pouvoir acc�der � l'historique de l'article (� gauche) or c'est pr�cisemment ce que je n'arrive pas � r�cup�rer depuis mon client. Le seul moyen que j'ai trouv� pour y acc�der est de d'abord cr�er une session avec mon navigateur pour r�cup�rer le jsessionid puis de t�l�charger la page depuis mon client en ins�rant le jsessionid, do� ma th�rie de la session non-reconnue (mais je peux me planter...).
Bref je commence � me taper la t�te sur ma table et mon chat me regarde bizarrement... c'est pour �a que j'appelle � l'aide.
Ci-dessous le code de mon mini-client (pomp� � droite � gauche et cod� avec les pieds... un petit client de test quoi)
Je remercie tr�s sinc�rement celui ou ceux qui pourront m'orienter vers une solution.
Pour ceux qui auraient des doutes, cela n'a rien d'ill�gal dans la mesure o� l'utilisation n'est pas commerciale et que les textes de codes sont en principe libre de droit.
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 public class clientHttp { static String path = "fichier"; static int n = 0; static String idSession =""; static HttpClient httpclient = new DefaultHttpClient(); static HttpContext localContext = new BasicHttpContext(); static HttpGet httpget; static List<Cookie> cookies; static CookieStore cookieStore; public final static void main(String[] args) throws Exception { try { cookieStore = new BasicCookieStore(); localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); httpget = new HttpGet("http://www.legifrance.gouv.fr"); httpget.getParams().setParameter( ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY); executeRequest(); afficheCookies(); httpget.setURI(new URI("http://www.legifrance.gouv.fr/affichCodeArticle.do;jsessionid="+idSession+"?idArticle=LEGIARTI000006278868&cidTexte=LEGITEXT000006069414")); executeRequest(); afficheCookies(); } finally { httpclient.getConnectionManager().shutdown(); } } public static void executeRequest() throws ClientProtocolException, IOException{ System.out.println("\nexecuting request " + httpget.getURI()); HttpResponse response = httpclient.execute(httpget, localContext); HttpEntity entity = response.getEntity(); if (entity != null) { System.out.println("Response content length: " + entity.getContentLength()); n++; File f = new File(path+""+n+".html"); FileOutputStream fos = new FileOutputStream(f); InputStream instream = entity.getContent(); int l; while ((l = instream.read()) != -1) { fos.write(l); } } // Consume response content EntityUtils.consume(entity); } public static void afficheCookies(){ cookies = cookieStore.getCookies(); for (int i = 0; i < cookies.size(); i++) { System.out.println("Local cookie: " + cookies.get(i)); } System.out.println("----------------------------------------"); } }
Partager