2013-06-23 9 views
0

Я использую Jsoup, чтобы очистить галерею фотографий с этого сайта итальянскийJsoup Java FileNotFoundException из URL

http://www.italiaebraica.org/index.php?option=com_phocagallery&view=category&id=3:famiglia-levi&Itemid=143&lang=it

в AsyncTask с Jsoup я получаю от HTML все URLs образов:

@Override 
protected Void doInBackground(String... params) { 

    Document doc; 

    try { 
     ConnectivityManager conMgr = (ConnectivityManager) mActivity 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 

     if (conMgr.getActiveNetworkInfo() != null 
       && conMgr.getActiveNetworkInfo().isAvailable() 
       && conMgr.getActiveNetworkInfo().isConnected()) { 
      doc = Jsoup 
        .connect(urlReceivedToConnect) 
        .timeout(0).get(); 
      Elements imgList = doc.getElementsByClass("phocagallery-box-file-third").select("img"); 
      photoList = new ArrayList<String>(); 
      ListIterator<Element> post = imgList.listIterator(); 

      while (post.hasNext()) { 
       photoList.add(post.next().attr("abs:src")); 
      } 
     } 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return null; 
} 

Затем в costumized адаптер, я беру этот urlsList и я загрузка изображений из URL, что я кладу в GridView позже:

private Drawable LoadImageFromURL(String url) { 
    try { 
     InputStream is = (InputStream) new URL(url).getContent(); 
     Drawable d = Drawable.createFromStream(is, "src"); 
     return d; 
    } catch (Exception e) { 
     System.out.println(e); 
     return null; 
    } 
} 

Проблема заключается в том: некоторые фотографии показаны и в порядке, но некоторые другие представляет эту ошибку:

06-23 10: 06: 06.930: I/System.out (493): java.io .FileNotFoundException: http://www.italiaebraica.org/images/phocagallery/famiglia_levi/thumbs/phoca_thumb_m_Famiglia Levi 024.jpg

В чем проблема? как я могу получить все фотографии в правильном направлении? Пожалуйста, помогите, надеюсь, что это ясно, Я младший разработчик!

ответ

0
java.io.FileNotFoundException: 

довольно понятно. Распечатайте URL-адреса, чтобы вы могли видеть те, которые вызывают исключение. Не нужно слишком долго отлаживать.

Я не знаю, какие изображения существуют, а что нет, так что вы тот, кто должен это понять.

+0

я уже могу увидеть URLs, которые вызывают исключение, проблема в том, что если я буду запускать их в браузере, они дают мне изображение, но Java не может Найди их. Может быть, я должен каким-то образом разобрать URL-адреса, чтобы они были в порядке, или, может быть, есть другое решение. – user2404626

0

Что не так, есть пробелы в URL-адресе. Большинство браузеров создаются, чтобы определить, есть ли место и заменить его на% 20, чтобы вы не попали в URL-адрес в браузере. Поэтому я рекомендовал бы использовать:

private Drawable LoadImageFromURL(String url) { 
    if(url.contains(" ")){ 
     url.replace(" ", "%20"); 
    } 
    try { 
     InputStream is = (InputStream) new URL(url).getContent(); 
     Drawable d = Drawable.createFromStream(is, "src"); 
     return d; 
    } catch (Exception e) { 
     System.out.println(e); 
     return null; 
    } 
}