2017-01-21 5 views
0

Мне нужно проанализировать данные с сайта, этот запрос дает мне json, который мне нужен, когда я запускаю его в командной строке, когда я пытался преобразовать его в Android, он не работает:Использование Curl для получения данных таблиц

Мой запрос: «свернуться 'http://billetterie.ctm.ma/site/select_voyages_aller?datev=21-01-2017&agen_dep=022&agen_dest=745&nbp=1&dater=21-01-2017&aller=AS&tpay=MA&q=1&_search=false&nd=1485004301429&rows=30&page=1&sidx=&sord=' 'хост: billetterie.ctm.ma' -H -H«User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; с.в.: 50,0) Gecko/20100101 Firefox/50.0 '-H ' Accept: application/json, text/javascript, /; q = 0.01 '-H ' Accept-Language: en-US, en; q = 0.5 '- сжатый -H 'X-Requested-With: XMLHttpRequest '-H' Referer: http://billetterie.ctm.ma/site/get_voyages?nat=1&tov1=nat&aller=AS&ag_dep=022&ag_arr=745&datev=21-01-2017&dater=21-01-2017&nbp=1&tpay=MA&horr=non ' -H' Cookie: __utma = 155676777.794288111.1468961313.1473110615.1483191519.26; __utmz = 155676777.1472508246.19.2.utmcsr = billetterie.ctm.ma | utmccn = (направление) | utmcmd = направление | utmcct =/сайт/accueil_widget; SESSb32ad49581ba1927701cb25c04e30aae = VhEOkLJ2qmLrlxEW3sNRIFpnS0ZUYPGUwAyvVqui_9I; _ctm_site_session = BAh7BzoQX2NzcmZfdG9rZW4iMUJ1ZzFpN3JDdGlzaTJGZUZEY2F0SWZPK3hMOWhwWW1vSFJ5QnoyUXFWLzA9Og9zZXNzaW9uX2lkIiUwNmMxOTYxNGIzOTRmNzY2ZWY0YzkyYTVjNTc4MzQzYQ% 3D% 3D - 59c0a57e5935d23668767649d8483155f719faf8' -H 'Connection: Keep-жив ",

Мой код на Java является:

public static String getRequest(String url) { 
     StringBuffer stringBuffer = new StringBuffer(""); 
     BufferedReader bufferedReader = null; 
     try { 
      HttpClient httpClient = new DefaultHttpClient(); 
      HttpGet httpGet = new HttpGet(); 

      URI uri = new URI(url); 
      httpGet.setURI(uri); 


      HttpResponse httpResponse = httpClient.execute(httpGet); 
      InputStream inputStream = httpResponse.getEntity().getContent(); 
      bufferedReader = new BufferedReader(new InputStreamReader(
        inputStream)); 

      String readLine = bufferedReader.readLine(); 
      while (readLine != null) { 
       stringBuffer.append(readLine); 
       stringBuffer.append("\n"); 
       readLine = bufferedReader.readLine(); 
      } 
     } catch (Exception e) { 
      // TODO: handle exception 
     } finally { 
      if (bufferedReader != null) { 
       try { 
        bufferedReader.close(); 
       } catch (IOException e) { 
        // TODO: handle exception 
       } 
      } 
     } 
     return stringBuffer.toString(); 

    } 
+0

что это разобрать? и где вы начинаете переменную URL? – firegloves

+0

Я начинаю переменные url перед началом этой темы, я нашел только заголовки и тот же абзац, что и таблицы, подобные ссылке в моем навигаторе. Надеюсь, я ответил на ваш вопрос –

+0

, кажется, что данные в таблицу загружаются асинхронно. вы можете увидеть загрузчик, если вы откроете свою ссылку. С jsoup вы не ждете асинхронных звонков, поэтому ваша таблица пуста или еще не создана – firegloves

ответ

0

Я думаю, что вы не можете разобрать эта страница синхронно, это не проблема JSOUP или проблема HttpClient.

Единственный способ, я могу думать, это изучить вашу страницу ссылок и сделать запрос, сделанный асинхронно на этой странице. Если вам нужен табличный контент, то что вам нужно разобрать, это не стартовая страница.

Что вам нужно, чтобы найти то, что асинхронной вызов делается для заполнения этой таблицы в браузере, сделать этот вызов и попытаться разобрать ответ

+0

, но брата. Если вы запустите указанный выше запрос, вы может получить json ответа, проблема теперь работает завиток в android –

+0

Я думаю, вы должны использовать подход NDK. Или, может быть, некоторые библиотеки? – firegloves

+0

ОК спасибо, я попробую что-то еще –