• Java封装servlet发送请求(二)


    /**
    
         * 向指定 URL 发送POST方法的请求
    
         * 
    
         * @param url
    
         *            发送请求的 URL
    
         * @param param
    
         *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
    
         * @return 所代表远程资源的响应结果
    
         */
    
        public static JSONObject sendPost(String url, String param) {
    
            JSONObject jsonObject = null;
    
            
    
            PrintWriter out = null;
    
            BufferedReader in = null;
    
            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(param);
    
                // flush输出流的缓冲
    
                out.flush();
    
                // 定义BufferedReader输入流来读取URL的响应
    
                in = new BufferedReader(
    
                        new InputStreamReader(conn.getInputStream()));
    
                String line;
    
                String str = null;
    
                StringBuffer buffer = new StringBuffer();
    
                while ((line = in.readLine()) != null) {
    
                    buffer.append(line);
    
                }
    
                jsonObject = JSONObject.fromObject(buffer.toString());
    
            } 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 jsonObject;
    
        }
  • 相关阅读:
    Strapi and MongoDB
    Windows 下入手 MongoDB
    npm 创建一个 github action
    Vue3: does not provide an export named 'createRouter'
    How To Use Rocketbots As A Dialogflow CRM
    Telegram Groups vs Telegram Channels
    WhatsApp Group vs WhatsApp Broadcast for Business
    Instant Messaging for Business: Your 10 Best Options
    How to Create and Use Facebook Messenger Codes (June 2019)
    Ultimate Guide to Line For Business (May 2019)
  • 原文地址:https://www.cnblogs.com/zh-1721342390/p/9764912.html
Copyright © 2020-2023  润新知