HttpUtil工具类

HttpUtil工具类

/** 

     * 向指定URL发送GET方法的请求 

     *  

     * @param url 

     *            发送请求的URL 

     * @param params 

     *            请求参数,请求参数应该是name1=value1&name2=value2的形式。 

     * @return URL所代表远程资源的响应 

     * 

     */  

    public static String sendGet(String url, String params)  

    {  

        String result = "";  

        BufferedReader in = null;  

        try  

        {  

            String urlName = url + "?" + params; 

            URL realUrl = new URL(urlName);  

            // 打开和URL之间的连接  

            URLConnection conn = realUrl.openConnection();  

            // 设置通用的请求属性  

            conn.setRequestProperty("accept", "*/*");  

            conn.setRequestProperty("connection", "Keep-Alive");  

            conn.setRequestProperty("user-agent",  

                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");  

            // 建立实际的连接  

            conn.connect();  

            // 获取所有响应头字段  

            Map<String, List<String>> map = conn.getHeaderFields();  

            // 遍历所有的响应头字段  

            for (String key : map.keySet())  

            {  

                System.out.println(key + "--->" + map.get(key));  

            }  

            // 定义BufferedReader输入流来读取URL的响应  

            in = new BufferedReader(  

                    new InputStreamReader(conn.getInputStream()));  

            String line;  

            while ((line = in.readLine()) != null)  

            {  

                result += "\n" + line;  

            }  

        }  

        catch (Exception e)  

        {  

            System.out.println("发送GET请求出现异常!" + e);  

            e.printStackTrace();  

        }  

        // 使用finally块来关闭输入流  

        finally  

        {  

            try  

            {  

                if (in != null)  

                {  

                    in.close();  

                }  

            }  

            catch (IOException ex)  

            {  

                ex.printStackTrace();  

            }  

        }  

        return result;  

    }  



    /**  

     * 向指定URL发送POST方法的请求  

     *   

     * @param url  

     *            发送请求的URL  

     * @param params  

     *            请求参数,请求参数应该是name1=value1&name2=value2的形式。  

     * @return URL所代表远程资源的响应  

     */  

    public static String sendPost(String url, String params)  

    {  

        PrintWriter out = null;  

        BufferedReader in = null;  

        String result = "";  

        try  

        {  

            URL realUrl = new URL(url);  

            // 打开和URL之间的连接  

            URLConnection conn = realUrl.openConnection();  

            // 设置通用的请求属性  

            conn.setRequestProperty("accept", "*/*");  

            conn.setRequestProperty("connection", "Keep-Alive");  

            conn.setRequestProperty("user-agent",  

                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");  

            // 发送POST请求必须设置如下两行  

            conn.setDoOutput(true);  

            conn.setDoInput(true);  

            // 获取URLConnection对象对应的输出流  

            out = new PrintWriter(conn.getOutputStream());  

            // 发送请求参数  

            out.print(params);  

            // flush输出流的缓冲  

            out.flush();  

            // 定义BufferedReader输入流来读取URL的响应  

            in = new BufferedReader(  

                    new InputStreamReader(conn.getInputStream()));  

            String line;  

            while ((line = in.readLine()) != null)  

            {  

                result += "\n" + line;  

            }  

        }  

        catch (Exception e)  

        {  

            System.out.println("发送POST请求出现异常!" + e);  

            e.printStackTrace();  

        }  

        // 使用finally块来关闭输出流、输入流  

        finally  

        {  

            try  

            {  

                if (out != null)  

                {  

                    out.close();  

                }  

                if (in != null)  

                {  

                    in.close();  

                }  

            }  

            catch (IOException ex)  

            {  

                ex.printStackTrace();  

            }  

        }  

        return result;  

    }  

把输入流内容转化成字符串工具类:

public class StreamTools {



    /**

     * 把输入流内容转化成字符串

     */

    public static String readInputStream(InputStream is) {        

        try {

            ByteArrayOutputStream baos=new ByteArrayOutputStream();

            int len=0;

            byte[] buffer=new byte[1024];

            while ((len=is.read(buffer))!=-1) {

                baos.write(buffer,0,len);

            }

            is.close();

            baos.close();

            byte[] result=baos.toByteArray();

            //试着解析result中的字符串

            String temp=new String(result);

            return temp;

        } catch (Exception e) {

            e.printStackTrace();

            return "获取失败";

        }



    }

}

 

你可能感兴趣的:(http)