发送一个url地址 获得到数据

/***
    * 常识:HttpURLConnection 的父类 URLConnection
    * 
    */
   public static String postUrlContent(String url, String param) { // param为所带的参数
         PrintWriter out = null;  
         BufferedReader in = null;  
         String result = "";
     try{
            URL realUrl = new URL(url);  
            // 打开和URL之间的连接  
            URLConnection conn =  realUrl.openConnection(); // 或者转换为  HttpURLConnection conn = (HttpURLConnection) 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);  //  设置post请求时必须设置为容许输出(post请求的必须设置项)
            conn.setDoInput(true);   // 设置是否从httpUrlConnection读入,默认情况下是true;  
            // 设置文件类型  
            conn.setRequestProperty("Content-type", "application/x-java-serialized-object");
            
            System.setProperty("sun.net.client.defaultConnectTimeout", "30000");   // 连接主机的超时时间(单位:毫秒)
            System.setProperty("sun.net.client.defaultReadTimeout", "30000");  //  从主机读取数据的超时时间(单位:毫秒)
             // 设定请求的方法为"POST",默认是GET  
            ((HttpURLConnection) conn).setRequestMethod("POST");
            // 获取URLConnection对象对应的输出流  
            out = new PrintWriter(conn.getOutputStream());  
            // 发送请求参数  
            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;
 }

猜你喜欢

转载自blog.csdn.net/qq_37469931/article/details/83375042