HttpURLConnetion的使用

来源:互联网 发布:树莓派 ubuntu 编辑:程序博客网 时间:2024/06/05 02:38

HttpURLConnection是用来发送Http请求的类,用法如下:

<span style="font-size:18px;">        String urlStr = "http://www.xx.com";URL url = new URL(urlStr);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setDoInput(true);conn.setDoOutput(true);        conn.setReadTimeout(5000);        conn.setDoInput(true);        conn.setUseCaches(false);        //设置Cookie信息        conn.setRequestProperty("Cookie",cookie);InputStream inputStream = conn.getInputStream();//用于将网页信息输出到磁盘        FileOutputStream fos = new FileOutputStream(new File("F:/124.txt"));ByteArrayOutputStream baos   =   new   ByteArrayOutputStream();                int   i=-1;        while((i=inputStream.read())!=-1){        //写入             baos.write(i);       //写入文件              fos.write(i);        }        fos.flush();         System.out.println(baos.toString());conn.disconnect();</span>

这里的Cookie信息由我们来手动维护,在第一次登录或注册的时候,服务器会发送响应头,从中获得Cookie信息

<span style="font-size:18px;">        //之前的conn设置都相同        //输出参数params        //格式:a="some"&b="some"        conn.getOutputStream().write(params);         //调用connect()后,就可以获取header信息        conn.connect();        String key = null;        for(int i = 1;(key = conn.getHeaderFieldKey(i))!=null;i++ ){        System.out.print(key+":");        System.out.println(conn.getHeaderField(key));                if(key.equals("Set-Cookie")){                    String cookieStr = conn.getHeaderField(key);                    //获取的内容为    JSESSIONID=glapZp1oHEUI05C88Oikv; path=/</span><span style="font-size:18px;">                   //所以需要分割获取前半段                     String[] cookies = cookoeStr.split(";");                    String cookie = cookie[0];                   }           }        //下面的代码实现了相同的功能        /*Map<String, List<String>> maps = conn.getHeaderFields();        InputStream inputStream = conn.getInputStream();        List<String> cookieList = maps.get("Set-Cookie");               for(String cookie:cookieList){        System.out.println(cookie);        String[] str = cookie.split(";");        cookieStr = str[0];        System.out.println(str[0]);        }*/</span>


0 0