zoukankan      html  css  js  c++  java
  • 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;
    
        }
  • 相关阅读:
    一个老程序员的从零开始的从新出发
    Django静态文件配置
    Data truncated for column 'id' at row 1
    MyBatis之java.lang.UnsupportedOperationException异常解决方案
    mybatis批量查询-插入-删除
    Mybatis中进行批量更新(updateBatch)
    mybatis插入insert操作,返回自增id
    redis五大数据类型
    redis中key键操作
    Redis主从复制失败(master_link_status down)
  • 原文地址:https://www.cnblogs.com/zh-1721342390/p/9764912.html
Copyright © 2011-2022 走看看