zoukankan      html  css  js  c++  java
  • java发送http的get、post请求

    Http请求类

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

    调用方法:

    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     }

     原文:java发送http的get、post请求 - 上校 - 博客园 http://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.html

  • 相关阅读:
    Catch That Cow POJ 3278(BFS)
    python的各种推导式(列表推导式、字典推导式、集合推导式)
    贝叶斯神经网络
    浅谈贝叶斯
    置换检验
    Python的基本用法
    字符串和编码
    开启新篇章
    无偏博弈类问题
    PAT1103
  • 原文地址:https://www.cnblogs.com/zhjsll/p/4860297.html
Copyright © 2011-2022 走看看