Android:2 HttpUrlConnection

时间:2016-04-14 19:12:32

标签: android url android-activity

我是新的Android开发人员,我会尽力解决我的问题  我有 2个活动 他们都有listview的使用相同的自定义适配器 每个活动都有自己的服务器请求URL。

这是我发送网址并获取流数据

的类
public class HTTPDataHandler {

    static String stream = null;

    public HTTPDataHandler(){
    }

    public String GetHTTPData(String urlString){

        Log.v("HTTP handler", "Get HTTP DATA" );



        try{
            URL url = new URL(urlString);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

            // Check the connection status
            if(urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK)
            {
                // if response code = 200 ok
                InputStream in = new BufferedInputStream(urlConnection.getInputStream());

                // Read the BufferedInputStream
                BufferedReader r = new BufferedReader(new InputStreamReader(in));
                StringBuilder sb = new StringBuilder();
                String line;
                while ((line = r.readLine()) != null) {
                    sb.append(line);
                }
                stream = sb.toString();
                // End reading...............

                // Disconnect the HttpURLConnection
                urlConnection.disconnect();
            }
            else
            {

                // Do something
                Log.v("HTTP handler", "Not connected or got wrong data" );
            }
        }catch (MalformedURLException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }finally {

        }
        // Return the data from specified url
        return stream;
    }
}

我的第一个活动正常,听众没有问题 但在我的第二个活动中,我把正确的网址,但它返回了我第一次活动的流。 我对此进行了修改,我在

部分看到了这一点
 if(urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK)

我得到了别的,它返回了第一个活动数据而不是活动2网址中的数据。

可能导致什么? 它与我的"静态字符串流"?

有关 我很抱歉英语不好 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

编辑2:

在您的评论中,505错误显示为:

  

不支持505 HTTP版本

     

服务器不支持或拒绝支持请求消息中使用的HTTP协议版本。服务器指示它不能或不愿意使用与客户端相同的主要版本来完成请求,如3.1节所述,除了此错误消息。响应应该包含一个实体,用于描述不支持该版本的原因以及该服务器支持的其他协议。

编辑:

您应该在本地保存适配器或任何相关数据(我相信HTTP Urlconnection会这样做)或某种缓存,然后从该缓存重复读取,并且仅更新模式上的存储库,例如时差,超时,缓存控制或默认的个人指令。

请注意,互联网通常需要花钱。保存它,您的用户会更快乐。

原始

请检查代码304 here;那就是:

  

304未修改

     

如果客户端已执行条件GET请求并允许访问,但文档尚未修改,则服务器应该响应此状态代码。 304响应绝不能包含消息体,因此总是在头字段后面的第一个空行终止。