美文网首页
Http请求的工具类 HttpRequest

Http请求的工具类 HttpRequest

作者: 玲珑花 | 来源:发表于2017-06-02 16:19 被阅读0次
    import java.io.BufferedReader;
    
    import java.io.IOException;
    
    import java.io.InputStreamReader;
    
    import java.io.OutputStreamWriter;
    
    import java.io.PrintWriter;
    
    import java.net.URL;
    
    import java.net.URLConnection;
    
    import java.util.List;
    
    import java.util.Map;
    
    public class HttpRequest {
    
        public static void main(String[] args) {
    
            // 发送 GET 请求
    
            // String s =
            // HttpRequest.sendGet("http://localhost:6144/Home/RequestString",
            // "key=123&v=456");
    
            // System.out.println(s);
    
            // 发送 POST 请求
    
            String sr = HttpRequest.sendPost("http://192.168.31.227:8080/fbtj/webChat/offerNum", "id=1230,,user=tom");
    
            System.out.println(sr);
    
        }
    
        /**
         * 
         * 向指定URL发送GET方法的请求
         * 
         * 
         * 
         * @param url
         * 
         * 发送请求的URL
         * 
         * @param param
         * 
         * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * 
         * @return URL 所代表远程资源的响应结果
         * 
         */
    
        public static String sendGet(String url, String param) {
    
            String result = "";
    
            BufferedReader in = null;
    
            try {
    
                String urlNameString = url + "?" + param;
    
                URL realUrl = new URL(urlNameString);
    
                // 打开和URL之间的连接
    
                URLConnection connection = realUrl.openConnection();
    
                // 设置通用的请求属性
    
                connection.setRequestProperty("accept", "*/*");
    
                connection.setRequestProperty("connection", "Keep-Alive");
    
                connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
    
                // 建立实际的连接
    
                connection.connect();
    
                // 获取所有响应头字段
    
                Map<String, List<String>> map = connection.getHeaderFields();
    
                // 遍历所有的响应头字段
    
                for (String key : map.keySet()) {
    
                    // System.out.println(key + "--->" + map.get(key));
    
                }
    
                // 定义 BufferedReader输入流来读取URL的响应
    
                in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
    
                // in = new BufferedReader(new
                // InputStreamReader(connection.getInputStream()));
    
                String line;
    
                while ((line = in.readLine()) != null) {
    
                    result += line;
    
                }
    
            } catch (Exception e) {
    
                System.out.println("发送GET请求出现异常!" + e);
    
                e.printStackTrace();
    
            }
    
            // 使用finally块来关闭输入流
    
            finally {
    
                try {
    
                    if (in != null) {
    
                        in.close();
    
                    }
    
                } catch (Exception e2) {
    
                    e2.printStackTrace();
    
                }
    
            }
    
            return result;
    
        }
    
        /**
         * 
         * 向指定 URL 发送POST方法的请求
         * 
         * 
         * 
         * @param url
         * 
         * 发送请求的 URL
         * 
         * @param param
         * 
         * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * 
         * @return 所代表远程资源的响应结果
         * 
         */
    
        public static String sendPost(String url, String param) {
    
            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(new OutputStreamWriter(conn.getOutputStream(), "utf-8"));
    
                // 发送请求参数
    
                out.print(param);
    
                // flush输出流的缓冲
    
                out.flush();
    
                // 定义BufferedReader输入流来读取URL的响应
    
                in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
    
                String line;
    
                while ((line = in.readLine()) != null) {
    
                    result += 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;
    
        }
    
    }
    

    相关文章

      网友评论

          本文标题:Http请求的工具类 HttpRequest

          本文链接:https://www.haomeiwen.com/subject/vyeufxtx.html