【问题标题】:Android : BufferedReader InputStreamReader returning old valueAndroid:BufferedReader InputStreamReader 返回旧值
【发布时间】:2017-06-06 05:35:56
【问题描述】:

在我的 android 应用程序中,我正在读取服务器中的文本文件。 我正在使用以下方法。

private String getUrlContents(String UrlOfFile)
{
    StringBuilder content = new StringBuilder();

    try
    {
        URL url = new URL(UrlOfFile);
        URLConnection urlConnection = url.openConnection();
        BufferedReader bufferedReader = new BufferedReader(new 
        InputStreamReader(urlConnection.getInputStream()));

        String line;

        while ((line = bufferedReader.readLine()) != null)
        {
            content.append(line + "\n");
        }
        bufferedReader.close();
    }
    catch(Exception e)
    {
      Log.d(TAG,"Exception    >>>"+Log.getStackTraceString(e));
    }
    return content.toString();
}

但我得到了文本文件的先前值。当我曾经清除应用程序的数据时,它能够获得实际价值。
请帮我解决这个问题。

【问题讨论】:

  • 至少在这里你没有清除内容。你唯一的继续追加它。确保它被清除。
  • @Sudarshan H.S. 以前的值是什么意思?
  • @CoffeehouseCoder 当我更改服务器的文本文件内容时,我的代码中的值只会越来越旧。
  • @CmosBattery ,我尝试通过 content.setLength(0) 清除内容,但没有帮助。
  • 当您在浏览器中加载 URL 的内容时会发生什么?我怀疑这可能是服务器缓存问题,而不是客户端问题。

标签: java android


【解决方案1】:

我的问题是由于返回缓存的响应。 urlConnection.setUseCaches(false) 解决的问题;

感谢大家的回复,

How to prevent Android from returning a cached response to my HTTP Request?

Adding header for HttpURLConnection

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多