HttpURLConnection类保持session会话

来源:互联网 发布:js控制div高度自适应 编辑:程序博客网 时间:2024/06/05 07:31

问题描述:

   有2URL连接,需要在第一个URL保持在线的状态下,发送第二个URL数据请求才能获取到数据

解决方案:

public void requestUrl(String url1,String url2){        HttpURLConnection connection = null;        Reader read;        BufferedReader bufferReader;        try {            CookieManager manager = new CookieManager();//关键的地方            CookieHandler.setDefault(manager);            URL url=new URL(url1);            HttpURLConnection con=(HttpURLConnection)url.openConnection();            con.setRequestMethod("GET");            //打印请求头信息            Map hfs=con.getHeaderFields();            Set<String> keys=hfs.keySet();            for(String str:keys){                List<String> vs=(List)hfs.get(str);                System.out.print(str+":");                for(String v:vs){                    System.out.print(v+"\t");                }                System.out.println();            }            System.out.println("-----------------------");            url = new URL(url2);            connection = (HttpURLConnection) url.openConnection();            //connection.setConnectTimeout(30000);//可以去掉            connection.setRequestMethod("GET");            //connection.setReadTimeout(30000);            InputStream in = connection.getInputStream();            //获取读取的方式            read = new InputStreamReader(connection.getInputStream());            bufferReader = new BufferedReader(read);            //获取服务器返回的字符串            String str;//读取每一行数据            StringBuffer buffer = new StringBuffer();//接受全部数据            while ((str = bufferReader.readLine()) != null) {                buffer.append(str + "\n");            }            //关闭连接            read.close();            connection.disconnect();            //测试            Log.d("发出去的请求",url2.toString());            Log.d("读取来的数据", buffer.toString());        } catch (Exception e) {            // TODO Auto-generated catch block            // e.printStackTrace();        } finally {            if (connection != null) {                connection.disconnect();            }        }    }


    buffer.toString即为读取的数据,该方法的关键地方在于下面两行代码:

   CookieManager manager = new CookieManager();   CookieHandler.setDefault(manager);
   主要实现为第二个URL设置整个cookie信息,而不单单是sessionID。







原创粉丝点击