rendered paste body//str1 = City//str2 = Branche//page = page-number//URL = http://wappc.pagesjaunes.fr/pj.cgi (CGI-Script).//Returns the source of the HTML-Page.private String specConnect(URL url, String str1, String str2, int page) throws IOException{ URLConnection urlConn; DataOutputStream printout; DataInputStream input; StringBuffer sb = new StringBuffer(); // URL connection channel. urlConn = url.openConnection(); // Let the run-time system (RTS) know that we want input. urlConn.setDoInput (true); // Let the RTS know that we want to do output. urlConn.setDoOutput (true); // No caching, we want the real thing. urlConn.setUseCaches (true); // Specify the content type. urlConn.setRequestProperty ("Content-Type", "application/x-www-form-urlencoded"); urlConn.setRequestProperty ("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"); urlConn.setRequestProperty ("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7"); urlConn.setRequestProperty ("Connection", "keep-alive"); urlConn.setRequestProperty ("Keep-Alive", "300"); urlConn.setRequestProperty ("Accept-Encoding", "gzip,deflate"); urlConn.setRequestProperty ("Accept-Language", "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"); urlConn.setRequestProperty ("Accept", "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"); String content; // Send POST output. printout = new DataOutputStream (urlConn.getOutputStream ()); /*String content = "actionForwardName=RecherchePagesJaunesReponse&activiteLibelleList=&activiteCode=&listCodesRubriquesCommun=&listLibelleComprehension=&voieCode=®ionCode=&localiteCode=&listeCodesLocalite=&listeCodesDepartement=&numeroArrondissement=&departementCode=&typePub=&typeService=PJ&typePage=PF&typeElargissement=&afficherClip=&afficherSpot=&afficherWeb=&afficherEnSavoirPlus=&afficherCatalogue=&afficherClipPlus=&afficherTroisCentSoixanteDegres=&afficherFlashAudio=&afficherEnglish=&typeRechercheElargissement=&langue=fr&portail=PJ&partenaire=&statAction=&activiteLibelle="+URLEncoder.encode(str1)+"&marqueLibelle=&localiteLibelle="+URLEncoder.encode(str2)+"&voieLibelle=&departementLibelle=&x=63&y=2";*/ System.out.println("!!! PAGE="+page);//The second or higher page needs other parameters (tested in browser FF). if(page == 1){ //If it is the first page. System.out.println("PAGE 1!"); content = "faire=decode_input_image&DEFAULT_ACTION=jf_inscriptions_req&srv=PJ&TYPE_RECHERCHE=ZZZ&id_partenaire=Toolbar&FRM_ACTIVITE="+str1+"&FRM_LOCALITE="+str2; }else{ //If page-number higher than 1 System.out.println("PAGE >1!"); content = "faire=print&IMPR=NON&nrep_total=227&OBJ_GEO=5%2F%3B%3B%3B%3B%2F3%3B00600400%3B00613580%3B00699999&GEO_LOC_PRINCIPALE=00600400&THEME_ACTIVITE=restaurants&THEME_DON_PRF=restaurants&SESSION_ID=FC-D5E5CF7-16ED0&VID=FC-D5E5CF7-16ED0&LISTEPUB=%7CW%7CU%7CD%7C&INFO_VILLE=oui&CODE_LOC_INFO_VILLE=00600400%2F00613580&IV_ACTIVATION=oui&lang=FR&pays=FR&srv=PJ&ACTIVITE_VALIDATED_ASCII=R54053000%3B&TYPE_RECHERCHE=PLOC&SAV_LOCALITE=Antibes&SAV_ACTIVITE=restaurants&CODRUBSELECT=R54053000%3B&FRM_ACTIVITE=restaurants&FRM_LOCALITE=Antibes&FRM_TYPE_PUB=TOUS&IDF_CD=MDMxNA--&NB_REP_TOTAL_NONE=227&FIRST_REP_PRINT_NONE=11&LAST_REP_PRINT_NONE=20&CTX_PRINT_NIV_PREC=11&CUR_ORTHO_PRINT=NONE&CTX_REP_PRINT=AAAAAAAAAAAAAAAKAAAALAAAAAAAAAM6AAAALAAAACwAAANmAAAASgAAA5IAAAAUAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAACgAAAARs6oBiAAAAAAAAAAYAAAAAAAABNQAAABMAAAE1AAAA2QAAAAAAAAAAAAAAAAAAAAAAAAEiFQAAACAFvRAAAAABAzjIiAAAATUMQVTwXRUztE%2BKonU%2BE6nqAZPQDHSAY5Trb6eBkEwOIm8zE3mSSTsTBnKYM6I37BG%2FTSiGSUQsSiFqSTuSSIJG82P7mgnZmE6eInTwTVVSUQuI6lZGiZJtzBNuZI3TAMRyB"; /* content = "faire=print&IMPR=NON&nrep_total=227&OBJ_GEO=5%2F%3B%3B%3B%3B%2F3%3B00600400%3B00613580%3B00699999&GEO_LOC_PRINCIPALE=00600400&THEME_ACTIVITE="+str1+"&THEME_DON_PRF="+str1+"&SESSION_ID=FH-D5E24A2-B812&VID=FH-D5E24A2-B812&LISTEPUB=%7CW%7CU%7CD%7C&INFO_VILLE=oui&CODE_LOC_INFO_VILLE=00600400%2F00613580&IV_ACTIVATION=oui&lang=FR&pays=FR&srv=PJ&ACTIVITE_VALIDATED_ASCII=R54053000%3B&TYPE_RECHERCHE=PLOC&SAV_LOCALITE="+str2+"&SAV_ACTIVITE="+str1+"&CODRUBSELECT=R54053000%3B&FRM_ACTIVITE="+str1+"&FRM_LOCALITE="+str2+"&FRM_TYPE_PUB=TOUS&IDF_CD=MDMxMg--&NB_REP_TOTAL_NONE=227&FIRST_REP_PRINT_NONE="+page+"&LAST_REP_PRINT_NONE="+(page+9)+"&CTX_PRINT_NIV_PREC="+(page+9)+"&CUR_ORTHO_PRINT=NONE&CTX_REP_PRINT=AAAAAAAAAAAAAAAKAAAALAAAAAAAAANEAAAALAAAACwAAANwAAAASgAAA5wAAAAUAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAACgAAAAR0fSBlAAAAAAAAAAYAAAAAAAABNQAAAA8AAAE1AAAA2QAAAAAAAAAAAAAAAAAAAAAAAAEmFQAAACAFvRAAAAABAzjIiAAAATVMKhKe4ZT3EJquhNVzJlnArNJFXUaeXTRHcRNbTBiHwcZWTpvabHRBs9QpTLLZzwpTKLZzpol%2FFXCAqtOFVpp3qXOLTYqbAFTX56fBENJ6bRNJhJBMJHBrP6eC6Lb0grPIFWGYqwy"; //content = "faire=print&IMPR=NON&nrep_total=227&OBJ_GEO=5%2F%3B%3B%3B%3B%2F3%3B00600400%3B00613580%3B00699999&GEO_LOC_PRINCIPALE=00600400&THEME_ACTIVITE=restaurants&THEME_DON_PRF=restaurants&SESSION_ID=FH-D5E24A2-B812&VID=FH-D5E24A2-B812&LISTEPUB=%7CW%7CU%7CD%7C&INFO_VILLE=oui&CODE_LOC_INFO_VILLE=00600400%2F00613580&IV_ACTIVATION=oui&lang=FR&pays=FR&srv=PJ&ACTIVITE_VALIDATED_ASCII=R54053000%3B&TYPE_RECHERCHE=PLOC&SAV_LOCALITE=Antibes&SAV_ACTIVITE=restaurants&CODRUBSELECT=R54053000%3B&FRM_ACTIVITE=restaurants&FRM_LOCALITE=Antibes&FRM_TYPE_PUB=TOUS&IDF_CD=MDMxMg--&NB_REP_TOTAL_NONE=227&FIRST_REP_PRINT_NONE=21&LAST_REP_PRINT_NONE=30&CTX_PRINT_NIV_PREC=11&CUR_ORTHO_PRINT=NONE&CTX_REP_PRINT=AAAAAAAAAAAAAAAKAAAALAAAAAAAAANEAAAALAAAACwAAANwAAAASgAAA5wAAAAUAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAACgAAAAR0fSBlAAAAAAAAAAYAAAAAAAABNQAAAA8AAAE1AAAA2QAAAAAAAAAAAAAAAAAAAAAAAAEmFQAAACAFvRAAAAABAzjIiAAAATVMKhKe4ZT3EJquhNVzJlnArNJFXUaeXTRHcRNbTBiHwcZWTpvabHRBs9QpTLLZzwpTKLZzpol%2FFXCAqtOFVpp3qXOLTYqbAFTX56fBENJ6bRNJhJBMJHBrP6eC6Lb0grPIFWGYqwy"; /*content = "faire=print&IMPR=NON&nrep_total=227&OBJ_GEO=5%2F%3B%3B%3B%3B%2F3%3B00600400%3B00613580%3B00699999&GEO_LOC_PRINCIPALE=00600400&THEME_ACTIVITE="+str1+"&THEME_DON_PRF="+str1+"&SESSION_ID=GH-D5E028F-FFF0&VID=GD-D5BA228-D604&LISTEPUB=%7CW%7CU%7CD%7C&INFO_VILLE=oui&CODE_LOC_INFO_VILLE=00600400%2F00613580&IV_ACTIVATION=oui&lang=FR&pays=FR&srv=PJ&ACTIVITE_VALIDATED_ASCII=R54053000%3B&TYPE_RECHERCHE=PLOC&SAV_LOCALITE="+str2+"&SAV_ACTIVITE="+str1+"&CODRUBSELECT=R54053000%3B&FRM_ACTIVITE="+str2+"&FRM_LOCALITE="+str1+"&FRM_TYPE_PUB=TOUS&IDF_CD=MDMxMw--&NB_REP_TOTAL_NONE=227&FIRST_REP_PRINT_NONE="+page+"&LAST_REP_PRINT_NONE="+(page+9)+"&CTX_PRINT_NIV_PREC="+(page+9)+"&CUR_ORTHO_PRINT=NONE&CTX_REP_PRINT=AAAAAAAAAAAAAAAKAAAALAAAAAAAAAM%2FAAAALAAAACwAAANrAAAASgAAA5cAAAAUAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAACgAAAAQdETyFAAAAAAAAAAYAAAAAAAABNQAAABEAAAE1AAAA2QAAAAAAAAAAAAAAAAAAAAAAAAEkFQAAACAFvRAAAAABAzjIiAAAATVIiqFExAoUUTy6aA5iJJ64LaCD716dN7TY6IMscE2PhWYdE2PZWYcMZ94oSGFA8IoHgOKNBrYvE%2Bxon2MOebyZmwTaJpH%2F7I%2F%2FQMfdTwXRWnqFFAIoK7FBXSDMBQSBqA8"; /*content = "faire=decode_input_image&DEFAULT_ACTION="+page+"f_inscriptions_req&lang=fr&pays=fr&input_image=&FRM_ACTIVITE="+str1+"&FRM_LOCALITE="+str2; /*content = "faire=print&IMPR=NON&nrep_total=227&OBJ_GEO=5%2F%3B%3B%3B%3B%2F3%3B00600400%3B00613580%3B00699999&GEO_LOC_PRINCIPALE=00600400&THEME_ACTIVITE="+str1+"&THEME_DON_PRF="+str1+"&SESSION_ID=GH-D5E028F-FFF0&VID=GD-D5BA228-D604&LISTEPUB=%7CW%7CU%7CD%7C&INFO_VILLE=oui&CODE_LOC_INFO_VILLE=00600400%2F00613580&IV_ACTIVATION=oui&lang=FR&pays=FR&srv=PJ&ACTIVITE_VALIDATED_ASCII=R54053000%3B&TYPE_RECHERCHE=PLOC&SAV_LOCALITE="+str2+"&SAV_ACTIVITE="+str1+"&CODRUBSELECT=R54053000%3B&FRM_ACTIVITE="+str2+"&FRM_LOCALITE="+str1+"&FRM_TYPE_PUB=TOUS&IDF_CD=MDMxMw--&NB_REP_TOTAL_NONE=227&FIRST_REP_PRINT_NONE="+page+"&LAST_REP_PRINT_NONE="+(page+9)+"&CTX_PRINT_NIV_PREC="+(page+9)+"&CUR_ORTHO_PRINT=NONE&CTX_REP_PRINT=AAAAAAAAAAAAAAAKAAAALAAAAAAAAAM%2FAAAALAAAACwAAANrAAAASgAAA5cAAAAUAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAACgAAAAQdETyFAAAAAAAAAAYAAAAAAAABNQAAABEAAAE1AAAA2QAAAAAAAAAAAAAAAAAAAAAAAAEkFQAAACAFvRAAAAABAzjIiAAAATVIiqFExAoUUTy6aA5iJJ64LaCD716dN7TY6IMscE2PhWYdE2PZWYcMZ94oSGFA8IoHgOKNBrYvE%2Bxon2MOebyZmwTaJpH%2F7I%2F%2FQMfdTwXRWnqFFAIoK7FBXSDMBQSBqA8";*/ } printout.writeBytes (content); System.out.println(content); printout.flush (); printout.close (); // Get response data. //Bytes to download: long todownload = urlConn.getContentLength(); long downloaded = 0; int percentage = 0; //Get the stream: input = new DataInputStream (urlConn.getInputStream ()); //DOWNLOAD String str; long oldval = 0; //Only when something changes, pls tell us. try{ while (null != ((str = input.readLine()))) { downloaded += str.getBytes().length; percentage = (int)(downloaded*100/todownload); if(oldval != percentage){ System.out.println("Downloaded: "+percentage+"%"); } sb.append(str); oldval = percentage; // } input.close (); } catch (Exception ex){ System.out.println("ERROR: Connection failure. Please check your connection and -settings."); } /// /// return(sb.toString()); }