Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5

HttpUrlConnection
#1

По долу копвам кода, който използвам. Този код си работи без проблем в 99% от случаите. Идеята му е да изтегля сорс кода на website. Използвам го в различни мои приложения за различни цели. Един пример е RSS четец на новини. Кода изтегля сорс кода на страницата и вече си манипулирам даниите (новините) и ги извеждам на екрана. Проблема е, че към един конкретен сайт с новини, кода не изтегля целия код на website-а в момента, а изтегля кода на website-а от преди 4 часа да кажем. Един вид някаква кеширана версия на сайта, а не в момента каквото има на него. Това ми прави проблем, защото при RSS четец, това извежда новините от преди 4 часа, а не последните качени от преди минути да кажем. Случвало ли ви се е нещо такова? Аз стигнах до извода, че самия сайт от който вземам информацията, има някакъв скрипт, който спира изтеглянето на момента, защото не намерих как да орпавя това приложението. Реално в браузъра виждам кода на сайта както е сега, а приложението ми връжа код, който е бил преди часове. Ето и кода, който използвам за изтегляне на информацията:

Код:
public String getXmlFromUrl(String link) {
       String stream = "";

       try {
           URL url = new URL(link);
           HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
           if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
               BufferedReader r = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
               StringBuilder sb = new StringBuilder();
               String line;
               while ((line = r.readLine()) != null) {
                   sb.append(line);
                   sb.append("\n");
               }
               stream = sb.toString();
               urlConnection.disconnect();
           }
       } catch (MalformedURLException e) {
           e.printStackTrace();
       } catch (ProtocolException e) {
           e.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       }
       return stream;
   }

Фалшива тревога. Мисля, че го оправих с това urlConnection.addRequestProperty("User-Agent", "Foo?");
Ако имате подобен проблем, изглежда това е решението.
Цитирай
Аксесоари
#2

Виж хедърите, които ти праща браузръра и ги прати същите и със апа
Цитирай
#3

как да видя в браузъра (Firefox)?
Цитирай
#4

https://addons.mozilla.org/bg/firefox/addon/firebug/
Цитирай
#5

Кой сайт (url) се опитваш да изтеглиш? И аз използвам същия код за изтегляне на съдържание от web, и до сега не съм имал проблеми с него.

📱 | HTC ONE M9 | HTC Desire 500 | HTC Wildfire S |
Цитирай
#6

offnews rss фийда им. ако не сложа реда, който написах по горе не тегли последните няколко статии.
Цитирай




Потребители разглеждащи темата: 1 гост(и)