zoukankan      html  css  js  c++  java
  • java Http请求

    1. 发送get请求

        /**
         * 发送GET请求
         *
         * @param urlStr        目的地址
         * @param params 请求参数,Map类型。
         * @return 远程响应结果
         */
        public String sendGet(String urlStr, Map<String, String> params) throws Exception {
            //拼接urlStr
            StringBuffer sb = new StringBuffer();
            for(Entry<String, String> entry : params.entrySet()) {
                sb.append("&").append(entry.getKey()).append("=").append(entry.getValue());
            }
            sb.replace(0, 1, "?");
            sb.insert(0, urlStr);
            //创建url对象
            URL url = new URL(sb.toString());
            //创建连接对象,我们要使用http连接 所以强转为Http连接对象
            HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
            //连接对象设置通用参数
            httpConnection.setRequestProperty("Accept", "*/*");
            httpConnection.setRequestProperty("Connection", "Keep-Alive");
            httpConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
            //建立连接
            httpConnection.connect();
            // 获取响应头信息
            Map<String, List<String>> headers = httpConnection.getHeaderFields();
            //获取响应内容
            BufferedReader reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream(), "UTF-8"));
            sb = new StringBuffer();
            String line = null;
            while((line = reader.readLine()) != null) {
                sb.append(line);
            }
            
            return sb.toString();
        }
        
        

    2. 发送post请求

        /**
         * 发送POST请求
         *
         * @param urlStr        目的地址
         * @param params 请求参数,Map类型。
         * @return 远程响应结果
         */
        public String sendPost(String urlStr, Map<String, String> params) throws Exception {
            StringBuffer sb = new StringBuffer();
            for(Entry<String, String> entry : params.entrySet()) {
                sb.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
            }
            sb.substring(sb.length() - 1, sb.length());
            System.out.println(sb.toString());
    
            //创建url对象
            URL url = new URL(urlStr);
            //创建连接对象,我们要使用http连接 所以强转为Http连接对象
            HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
            //连接对象设置通用参数
            httpConnection.setRequestProperty("Accept", "*/*");
            httpConnection.setRequestProperty("Connection", "Keep-Alive");
            httpConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
            // 设置POST方式
            httpConnection.setDoInput(true);
            httpConnection.setDoOutput(true);
            // 获取HttpURLConnection对象对应的输出流
            PrintWriter out = new PrintWriter(httpConnection.getOutputStream());
            // 发送请求参数
            out.write(sb.toString());
            // flush输出流的缓冲
            out.flush();
            
            //获取响应内容
            BufferedReader reader = new BufferedReader(new InputStreamReader(httpConnection.getInputStream(), "UTF-8"));
            sb = new StringBuffer();
            String line = null;
            while((line = reader.readLine()) != null) {
                sb.append(line);
            }
            return sb.toString();
        }
  • 相关阅读:
    调试STM32/8 程序一些浅显又不易发现的问题
    MS5611 转换时间和精度的关系
    matlab 实用快捷键
    计算机中十六进制数对应的内存大小速记
    matlab 基本变量和函数
    自定义Button形状(圆形、椭圆)
    Android:自定义标题栏
    Python-21-socket编程
    Python-20-异常处理
    Python-19-元类
  • 原文地址:https://www.cnblogs.com/zhangzonghua/p/12870213.html
Copyright © 2011-2022 走看看