2013-12-11 2 views
0

Я пишу приложение для Android, чтобы получить источник нескольких веб-страниц, а затем извлечь информацию из них. У меня есть способ получить источник веб-страницы для мобильной версии страницы ниже, но мне нужна помощь, чтобы получить источник версии для рабочего стола.Получить HTML-источник для настольной страницы в Android

private static String getURLSource(String address) throws IOException 
{ 
    String inputLine = ""; 
    String urlSource = ""; 
    URL url = new URL(address); 
    HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 
    InputStream iS = conn.getInputStream(); 
    InputStreamReader iSR = new InputStreamReader(iS); 
    BufferedReader bR = new BufferedReader(iSR); 
    inputLine = bR.readLine(); 
    while(inputLine != null) 
    { 
     urlSource += inputLine; 
     inputLine = bR.readLine(); 
    } 
    bR.close(); 
    return urlSource; 
} 

ответ

0

Попытка добавить агента пользователя в какой-то рабочий стол UA мне кажется, что-то вроде: conn.setRequestProperty("User-Agent","Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.11");

EDIT: Полное тестирование кода:

class RetreiveUrlSourceTask extends AsyncTask<String, Void, String> { 
    protected String doInBackground(String... address) { 
     String inputLine = ""; 
     String urlSource = ""; 
     try { 
      URL url = new URL(address[0]); 
      HttpURLConnection conn = (HttpURLConnection)url.openConnection(); 
      conn.setRequestMethod("GET"); 
      conn.setRequestProperty("User-Agent","Opera/9.80 (X11; Linux x86_64) Presto/2.12.388 Version/12.11"); 
      InputStream iS = conn.getInputStream(); 
      InputStreamReader iSR = new InputStreamReader(iS); 
      BufferedReader bR = new BufferedReader(iSR); 
      inputLine = bR.readLine(); 
      while(inputLine != null) 
      { 
       urlSource += inputLine; 
       android.util.Log.d("getURLSource", inputLine); 
       inputLine = bR.readLine(); 
      } 
      bR.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return urlSource; 
    } 

    protected void onPostExecute(String urlSource) { 
    } 
} 

, а затем позвонить:

RetreiveUrlSourceTask task = new RetreiveUrlSourceTask(); 
task.execute("http://whatsmyuseragent.com/"); 
+0

Когда я помещаю эту строку в свой код и записываю источник в файл, файл отображается как пустой. – user14754

+0

Так что, перейдя из «без агента пользователя вообще» в UA, делает файл пустым? Не могли бы вы попробовать другой пользовательский агент для ПК? –

+0

Также попробовал «Mozilla/5.0 (Windows NT 6.0; rv: 25.0) Gecko/20100101 Firefox/25.0», который также делает файл пустым. – user14754

 Смежные вопросы

  • Нет связанных вопросов^_^