A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Http请求类:
  1. package wzh.Http;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.PrintWriter;
  6. import java.net.URL;
  7. import java.net.URLConnection;
  8. import java.util.List;
  9. import java.util.Map;

  10. /**
  11. * Http请求类
  12. *
  13. * @author Simon
  14. * @since 2015-06-02
  15. */
  16. public class HttpRequest {
  17.     /**
  18.      * 向指定URL发送GET方法的请求
  19.      *
  20.      * @param url
  21.      *            发送请求的URL
  22.      * @param param
  23.      *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
  24.      * @return URL 所代表远程资源的响应结果
  25.      */
  26.     public static String sendGet(String url, String param) {
  27.         String result = "";
  28.         BufferedReader in = null;
  29.         try {
  30.             String urlNameString = url + "?" + param;
  31.             URL realUrl = new URL(urlNameString);
  32.             // 打开和URL之间的连接
  33.             URLConnection connection = realUrl.openConnection();
  34.             // 设置通用的请求属性
  35.             connection.setRequestProperty("accept", "*/*");
  36.             connection.setRequestProperty("connection", "Keep-Alive");
  37.             connection.setRequestProperty("user-agent",
  38.                     "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
  39.             // 建立实际的连接
  40.             connection.connect();
  41.             // 获取所有响应头字段
  42.             Map<String, List<String>> map = connection.getHeaderFields();
  43.             // 遍历所有的响应头字段
  44.             for (String key : map.keySet()) {
  45.                 System.out.println(key + "--->" + map.get(key));
  46.             }
  47.             // 定义 BufferedReader输入流来读取URL的响应
  48.             in = new BufferedReader(new InputStreamReader(
  49.                     connection.getInputStream()));
  50.             String line;
  51.             while ((line = in.readLine()) != null) {
  52.                 result += line;
  53.             }
  54.         } catch (Exception e) {
  55.             System.out.println("发送GET请求出现异常!" + e);
  56.             e.printStackTrace();
  57.         }
  58.         // 使用finally块来关闭输入流
  59.         finally {
  60.             try {
  61.                 if (in != null) {
  62.                     in.close();
  63.                 }
  64.             } catch (Exception e2) {
  65.                 e2.printStackTrace();
  66.             }
  67.         }
  68.         return result;
  69.     }

  70.     /**
  71.      * 向指定 URL 发送POST方法的请求
  72.      *
  73.      * @param url
  74.      *            发送请求的 URL
  75.      * @param param
  76.      *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
  77.      * @return 所代表远程资源的响应结果
  78.      */
  79.     public static String sendPost(String url, String param) {
  80.         PrintWriter out = null;
  81.         BufferedReader in = null;
  82.         String result = "";
  83.         try {
  84.             URL realUrl = new URL(url);
  85.             // 打开和URL之间的连接
  86.             URLConnection conn = realUrl.openConnection();
  87.             // 设置通用的请求属性
  88.             conn.setRequestProperty("accept", "*/*");
  89.             conn.setRequestProperty("connection", "Keep-Alive");
  90.             conn.setRequestProperty("user-agent",
  91.                     "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
  92.             // 发送POST请求必须设置如下两行
  93.             conn.setDoOutput(true);
  94.             conn.setDoInput(true);
  95.             // 获取URLConnection对象对应的输出流
  96.             out = new PrintWriter(conn.getOutputStream());
  97.             // 发送请求参数
  98.             out.print(param);
  99.             // flush输出流的缓冲
  100.             out.flush();
  101.             // 定义BufferedReader输入流来读取URL的响应
  102.             in = new BufferedReader(
  103.                     new InputStreamReader(conn.getInputStream()));
  104.             String line;
  105.             while ((line = in.readLine()) != null) {
  106.                 result += line;
  107.             }
  108.         } catch (Exception e) {
  109.             System.out.println("发送 POST 请求出现异常!"+e);
  110.             e.printStackTrace();
  111.         }
  112.         //使用finally块来关闭输出流、输入流
  113.         finally{
  114.             try{
  115.                 if(out!=null){
  116.                     out.close();
  117.                 }
  118.                 if(in!=null){
  119.                     in.close();
  120.                 }
  121.             }
  122.             catch(IOException ex){
  123.                 ex.printStackTrace();
  124.             }
  125.         }
  126.         return result;
  127.     }   
  128. }
复制代码

调用:
  1. public static void main(String[] args) {
  2.         //发送 GET 请求
  3.         String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");
  4.         System.out.println(s);
  5.         
  6.         //发送 POST 请求
  7.         String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
  8.         System.out.println(sr);
  9.     }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马