孤燈野火
          暢想的天空
          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
          主站蜘蛛池模板: 麻栗坡县| 开封县| 当阳市| 紫金县| 沙湾县| 新宁县| 远安县| 昌吉市| 桂平市| 铁力市| 灌阳县| 清水河县| 沭阳县| 碌曲县| 博湖县| 琼中| 黑龙江省| 田东县| 辉南县| 临安市| 藁城市| 长阳| 武山县| 阿坝| 邢台市| 丰县| 龙陵县| 台前县| 凌海市| 兴仁县| 驻马店市| 万全县| 鲁甸县| 安乡县| 山西省| 民县| 噶尔县| 耿马| 阜新| 汉沽区| 定远县|