孤燈野火
          暢想的天空
          posts - 2,comments - 4,trackbacks - 0
          package wzh.Http;
          import java.io.BufferedReader;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.io.PrintWriter;
          import java.net.URL;
          import java.net.URLConnection;
          import java.util.List;
          import java.util.Map;
          public class HttpRequest {
              /**
               * 向指定URL發送GET方法的請求
               * 
               * @param url
               *            發送請求的URL
               * @param param
               *            請求參數,請求參數應該是 name1=value1&name2=value2 的形式。
               * @return URL 所代表遠程資源的響應結果
               */
              public static String sendGet(String url, String param) {
                  String result = "";
                  BufferedReader in = null;
                  try {
                      String urlNameString = url + "?" + param;
                      URL realUrl = new URL(urlNameString);
                      // 打開和URL之間的連接
                      URLConnection connection = realUrl.openConnection();
                      // 設置通用的請求屬性
                      connection.setRequestProperty("accept", "*/*");
                      connection.setRequestProperty("connection", "Keep-Alive");
                      connection.setRequestProperty("user-agent",
                              "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                      // 建立實際的連接
                      connection.connect();
                      // 獲取所有響應頭字段
                      Map<String, List<String>> map = connection.getHeaderFields();
                      // 遍歷所有的響應頭字段
                      for (String key : map.keySet()) {
                          System.out.println(key + "--->" + map.get(key));
                      }
                      // 定義 BufferedReader輸入流來讀取URL的響應
                      in = new BufferedReader(new InputStreamReader(
                              connection.getInputStream()));
                      String line;
                      while ((line = in.readLine()) != null) {
                          result += line;
                      }
                  } catch (Exception e) {
                      System.out.println("發送GET請求出現異常!" + e);
                      e.printStackTrace();
                  }
                  // 使用finally塊來關閉輸入流
                  finally {
                      try {
                          if (in != null) {
                              in.close();
                          }
                      } catch (Exception e2) {
                          e2.printStackTrace();
                      }
                  }
                  return result;
              }
              /**
               * 向指定 URL 發送POST方法的請求
               * 
               * @param url
               *            發送請求的 URL
               * @param param
               *            請求參數,請求參數應該是 name1=value1&name2=value2 的形式。
               * @return 所代表遠程資源的響應結果
               */
              public static String sendPost(String url, String param) {
                  PrintWriter out = null;
                  BufferedReader in = null;
                  String result = "";
                  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;
                      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;
              }    
          }

          public static void main(String[] args) {
                  //發送 GET 請求
                  String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestString", "key=123&v=456");
                  System.out.println(s);
                  
                  //發送 POST 請求
                  String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
                  System.out.println(sr);
              }

          posted on 2014-08-05 10:59 孤飛燕 閱讀(260) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 珲春市| 贵州省| 三台县| 麻阳| 芦山县| 筠连县| 额济纳旗| 双鸭山市| 阿合奇县| 宣城市| 元江| 菏泽市| 庆阳市| 诸城市| 勐海县| 石屏县| 天峻县| 翁牛特旗| 宜章县| 蓬安县| 六盘水市| 普格县| 三原县| 柳州市| 微山县| 肇源县| 衡水市| 色达县| 枣庄市| 东至县| 高雄市| 盐津县| 凤城市| 麻阳| 沈丘县| 甘泉县| 长丰县| 宁远县| 肃北| 大同县| 商丘市|