码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA通过HTTP访问:Post+Get方式(转)

时间:2016-08-12 14:47:18      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

  1. public class TestGetPost {  
  2.     /** 
  3.      * 向指定URL发送GET方法的请求 
  4.      * @param url 发送请求的URL 
  5.      * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。 
  6.      * @return URL所代表远程资源的响应 
  7.      */  
  8.   
  9.     public static String sendGet(String url, String param) {  
  10.         String result = "";  
  11.         BufferedReader in = null;  
  12.         try {  
  13.             String urlName = url + "?" + param;  
  14.             URL realUrl = new URL(urlName);  
  15.             //打开和URL之间的连接  
  16.             URLConnection conn = realUrl.openConnection();  
  17.             //设置通用的请求属性  
  18.             conn.setRequestProperty("accept", "*/*");  
  19.             conn.setRequestProperty("connection", "Keep-Alive");  
  20.             conn.setRequestProperty("user-agent",  
  21.                 "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");  
  22.             //建立实际的连接  
  23.             conn.connect();  
  24.             //获取所有响应头字段  
  25.             Map < String, List < String >> map = conn.getHeaderFields();  
  26.             //遍历所有的响应头字段  
  27.             for (String key: map.keySet()) {  
  28.                 System.out.println(key + "--->" + map.get(key));  
  29.             }  
  30.             //定义BufferedReader输入流来读取URL的响应  
  31.             in = new BufferedReader(new InputStreamReader(conn.getInputStream()));  
  32.             String line;  
  33.             while ((line = in .readLine()) != null) {  
  34.                 result += "/n" + line;  
  35.             }  
  36.         } catch (Exception e) {  
  37.             System.out.println("发送GET请求出现异常!" + e);  
  38.             e.printStackTrace();  
  39.         }  
  40.         //使用finally块来关闭输入流  
  41.         finally {  
  42.             try {  
  43.                 if ( in != null) { in .close();  
  44.                 }  
  45.             } catch (IOException ex) {  
  46.                 ex.printStackTrace();  
  47.             }  
  48.         }  
  49.         return result;  
  50.     }  
  51.     /**  
  52.      * 向指定URL发送POST方法的请求  
  53.      * @param url 发送请求的URL  
  54.      * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。  
  55.      * @return URL所代表远程资源的响应  
  56.      */  
  57.     public static String sendPost(String url, String param) {  
  58.         PrintWriter out = null;  
  59.         BufferedReader in = null;  
  60.         String result = "";  
  61.         try {  
  62.             URL realUrl = new URL(url);  
  63.             //打开和URL之间的连接  
  64.             URLConnection conn = realUrl.openConnection();  
  65.             //设置通用的请求属性  
  66.             conn.setRequestProperty("accept", "*/*");  
  67.             conn.setRequestProperty("connection", "Keep-Alive");  
  68.             conn.setRequestProperty("user-agent",  
  69.                 "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");  
  70.             //发送POST请求必须设置如下两行  
  71.             conn.setDoOutput(true);  
  72.             conn.setDoInput(true);  
  73.             //获取URLConnection对象对应的输出流  
  74.             out = new PrintWriter(conn.getOutputStream());  
  75.             //发送请求参数  
  76.             out.print(param);  
  77.             //flush输出流的缓冲  
  78.             out.flush();  
  79.             //定义BufferedReader输入流来读取URL的响应  
  80.             in = new BufferedReader(  
  81.                 new InputStreamReader(conn.getInputStream()));  
  82.             String line;  
  83.             while ((line = in .readLine()) != null) {  
  84.                 result += "/n" + line;  
  85.             }  
  86.         } catch (Exception e) {  
  87.             System.out.println("发送POST请求出现异常!" + e);  
  88.             e.printStackTrace();  
  89.         }  
  90.         //使用finally块来关闭输出流、输入流  
  91.         finally {  
  92.             try {  
  93.                 if (out != null) {  
  94.                     out.close();  
  95.                 }  
  96.                 if ( in != null) { in .close();  
  97.                 }  
  98.             } catch (IOException ex) {  
  99.                 ex.printStackTrace();  
  100.             }  
  101.         }  
  102.         return result;  
  103.     }  
  104.   
  105.   
  106.     //提供主方法,测试发送GET请求和POST请求  
  107.     public static void main(String args[]) {  
  108.         //发送GET请求  
  109.         String s = TestGetPost.sendGet("http://localhost:8888/abc/login.jsp", null);  
  110.         System.out.println(s);  
  111.         //发送POST请求  
  112.         String s1 = TestGetPost.sendPost(http: //localhost:8888/abc/a.jsp ,  
  113.             "user=李刚&pass=abc");  
  114.         System.out.println(s1);  
  115.     }  
  116. }  

JAVA通过HTTP访问:Post+Get方式(转)

标签:

原文地址:http://www.cnblogs.com/mrjade/p/5764654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!