athrunwang

          紀元
          數據加載中……

          java 寫文件時,輸入換行字符.

          用String   crlf=System.getProperty( "line.separator "),這個crlf就是一個回車換行符,這樣跨OS也不用怕了。不建議用硬編碼如\r\n。

          posted @ 2011-10-25 14:47 AthrunWang 閱讀(149) | 評論 (0)編輯 收藏
          [導入][轉載]java中用URLConnection 類post方式提交表單

          /**
           * <pre>
           * Title:         HttpRequestProxy.java
           * Project:     HP-Common
           * Type:        com.hengpeng.common.web.HttpRequestProxy
           * Author:        benl
           * Create:         2007-7-3 上午03:07:07
           * Copyright:     Copyright (c) 2007
           * Company:
           * <pre>
           */
          import java.io.BufferedReader;
          import java.io.IOException;
          import java.io.InputStream;
          import java.io.InputStreamReader;
          import java.net.HttpURLConnection;
          import java.net.URL;
          import java.net.URLEncoder;
          import java.util.HashMap;
          import java.util.Iterator;
          import java.util.Map;
          import java.util.Map.Entry;

          import org.apache.log4j.Logger;

          /**
           * <pre>
           * HTTP請求代理類
           * </pre>
           *
           * @author benl
           * @version 1.0, 2007-7-3
           */
          public class HttpRequestProxy
          {
              /**
               * 連接超時
               */
              private static int connectTimeOut = 5000;

              /**
               * 讀取數據超時
               */
              private static int readTimeOut = 10000;

              /**
               * 請求編碼
               */
              private static String requestEncoding = "GBK";

              private static Logger logger = Logger.getLogger(HttpRequestProxy.class);

              /**
               * <pre>
               * 發送帶參數的GET的HTTP請求
               * </pre>
               *
               * @param reqUrl HTTP請求URL
               * @param parameters 參數映射表
               * @return HTTP響應的字符串
               */
              public static String doGet(String reqUrl, Map parameters,
                      String recvEncoding)
              {
                  HttpURLConnection url_con = null;
                  String responseContent = null;
                  try
                  {
                      StringBuffer params = new StringBuffer();
                      for (Iterator iter = parameters.entrySet().iterator(); iter
                              .hasNext();)
                      {
                          Entry element = (Entry) iter.next();
                          params.append(element.getKey().toString());
                          params.append("=");
                          params.append(URLEncoder.encode(element.getValue().toString(),
                                  HttpRequestProxy.requestEncoding));
                          params.append("&");
                      }

                      if (params.length() > 0)
                      {
                          params = params.deleteCharAt(params.length() - 1);
                      }

                      URL url = new URL(reqUrl);
                      url_con = (HttpURLConnection) url.openConnection();
                      url_con.setRequestMethod("GET");
                      System.setProperty("sun.net.client.defaultConnectTimeout", String
                              .valueOf(HttpRequestProxy.connectTimeOut));// (單位:毫秒)jdk1.4換成這個,連接超時
                      System.setProperty("sun.net.client.defaultReadTimeout", String
                              .valueOf(HttpRequestProxy.readTimeOut)); // (單位:毫秒)jdk1.4換成這個,讀操作超時
                      // url_con.setConnectTimeout(5000);//(單位:毫秒)jdk
                      // 1.5換成這個,連接超時
                      // url_con.setReadTimeout(5000);//(單位:毫秒)jdk 1.5換成這個,讀操作超時
                      url_con.setDoOutput(true);
                      byte[] b = params.toString().getBytes();
                      url_con.getOutputStream().write(b, 0, b.length);
                      url_con.getOutputStream().flush();
                      url_con.getOutputStream().close();

                      InputStream in = url_con.getInputStream();
                      BufferedReader rd = new BufferedReader(new InputStreamReader(in,
                              recvEncoding));
                      String tempLine = rd.readLine();
                      StringBuffer temp = new StringBuffer();
                      String crlf=System.getProperty("line.separator");
                      while (tempLine != null)
                      {
                          temp.append(tempLine);
                          temp.append(crlf);
                          tempLine = rd.readLine();
                      }
                      responseContent = temp.toString();
                      rd.close();
                      in.close();
                  }
                  catch (IOException e)
                  {
                      logger.error("網絡故障", e);
                  }
                  finally
                  {
                      if (url_con != null)
                      {
                          url_con.disconnect();
                      }
                  }

                  return responseContent;
              }

              /**
               * <pre>
               * 發送不帶參數的GET的HTTP請求
               * </pre>
               *
               * @param reqUrl HTTP請求URL
               * @return HTTP響應的字符串
               */
              public static String doGet(String reqUrl, String recvEncoding)
              {
                  HttpURLConnection url_con = null;
                  String responseContent = null;
                  try
                  {
                      StringBuffer params = new StringBuffer();
                      String queryUrl = reqUrl;
                      int paramIndex = reqUrl.indexOf("?");

                      if (paramIndex > 0)
                      {
                          queryUrl = reqUrl.substring(0, paramIndex);
                          String parameters = reqUrl.substring(paramIndex + 1, reqUrl
                                  .length());
                          String[] paramArray = parameters.split("&");
                          for (int i = 0; i < paramArray.length; i++)
                          {
                              String string = paramArray[i];
                              int index = string.indexOf("=");
                              if (index > 0)
                              {
                                  String parameter = string.substring(0, index);
                                  String value = string.substring(index + 1, string
                                          .length());
                                  params.append(parameter);
                                  params.append("=");
                                  params.append(URLEncoder.encode(value,
                                          HttpRequestProxy.requestEncoding));
                                  params.append("&");
                              }
                          }

                          params = params.deleteCharAt(params.length() - 1);
                      }

                      URL url = new URL(queryUrl);
                      url_con = (HttpURLConnection) url.openConnection();
                      url_con.setRequestMethod("GET");
                      System.setProperty("sun.net.client.defaultConnectTimeout", String
                              .valueOf(HttpRequestProxy.connectTimeOut));// (單位:毫秒)jdk1.4換成這個,連接超時
                      System.setProperty("sun.net.client.defaultReadTimeout", String
                              .valueOf(HttpRequestProxy.readTimeOut)); // (單位:毫秒)jdk1.4換成這個,讀操作超時
                      // url_con.setConnectTimeout(5000);//(單位:毫秒)jdk
                      // 1.5換成這個,連接超時
                      // url_con.setReadTimeout(5000);//(單位:毫秒)jdk 1.5換成這個,讀操作超時
                      url_con.setDoOutput(true);
                      byte[] b = params.toString().getBytes();
                      url_con.getOutputStream().write(b, 0, b.length);
                      url_con.getOutputStream().flush();
                      url_con.getOutputStream().close();
                      InputStream in = url_con.getInputStream();
                      BufferedReader rd = new BufferedReader(new InputStreamReader(in,
                              recvEncoding));
                      String tempLine = rd.readLine();
                      StringBuffer temp = new StringBuffer();
                      String crlf=System.getProperty("line.separator");
                      while (tempLine != null)
                      {
                          temp.append(tempLine);
                          temp.append(crlf);
                          tempLine = rd.readLine();
                      }
                      responseContent = temp.toString();
                      rd.close();
                      in.close();
                  }
                  catch (IOException e)
                  {
                      logger.error("網絡故障", e);
                  }
                  finally
                  {
                      if (url_con != null)
                      {
                          url_con.disconnect();
                      }
                  }

                  return responseContent;
              }

              /**
               * <pre>
               * 發送帶參數的POST的HTTP請求
               * </pre>
               *
               * @param reqUrl HTTP請求URL
               * @param parameters 參數映射表
               * @return HTTP響應的字符串
               */
              public static String doPost(String reqUrl, Map parameters,
                      String recvEncoding)
              {
                  HttpURLConnection url_con = null;
                  String responseContent = null;
                  try
                  {
                      StringBuffer params = new StringBuffer();
                      for (Iterator iter = parameters.entrySet().iterator(); iter
                              .hasNext();)
                      {
                          Entry element = (Entry) iter.next();
                          params.append(element.getKey().toString());
                          params.append("=");
                          params.append(URLEncoder.encode(element.getValue().toString(),
                                  HttpRequestProxy.requestEncoding));
                          params.append("&");
                      }

                      if (params.length() > 0)
                      {
                          params = params.deleteCharAt(params.length() - 1);
                      }

                      URL url = new URL(reqUrl);
                      url_con = (HttpURLConnection) url.openConnection();
                      url_con.setRequestMethod("POST");
                      System.setProperty("sun.net.client.defaultConnectTimeout", String
                              .valueOf(HttpRequestProxy.connectTimeOut));// (單位:毫秒)jdk1.4換成這個,連接超時
                      System.setProperty("sun.net.client.defaultReadTimeout", String
                              .valueOf(HttpRequestProxy.readTimeOut)); // (單位:毫秒)jdk1.4換成這個,讀操作超時
                      // url_con.setConnectTimeout(5000);//(單位:毫秒)jdk
                      // 1.5換成這個,連接超時
                      // url_con.setReadTimeout(5000);//(單位:毫秒)jdk 1.5換成這個,讀操作超時
                      url_con.setDoOutput(true);
                      byte[] b = params.toString().getBytes();
                      url_con.getOutputStream().write(b, 0, b.length);
                      url_con.getOutputStream().flush();
                      url_con.getOutputStream().close();

                      InputStream in = url_con.getInputStream();
                      BufferedReader rd = new BufferedReader(new InputStreamReader(in,
                              recvEncoding));
                      String tempLine = rd.readLine();
                      StringBuffer tempStr = new StringBuffer();
                      String crlf=System.getProperty("line.separator");
                      while (tempLine != null)
                      {
                          tempStr.append(tempLine);
                          tempStr.append(crlf);
                          tempLine = rd.readLine();
                      }
                      responseContent = tempStr.toString();
                      rd.close();
                      in.close();
                  }
                  catch (IOException e)
                  {
                      logger.error("網絡故障", e);
                  }
                  finally
                  {
                      if (url_con != null)
                      {
                          url_con.disconnect();
                      }
                  }
                  return responseContent;
              }

              /**
               * @return 連接超時(毫秒)
               * @see com.hengpeng.common.web.HttpRequestProxy#connectTimeOut
               */
              public static int getConnectTimeOut()
              {
                  return HttpRequestProxy.connectTimeOut;
              }

              /**
               * @return 讀取數據超時(毫秒)
               * @see com.hengpeng.common.web.HttpRequestProxy#readTimeOut
               */
              public static int getReadTimeOut()
              {
                  return HttpRequestProxy.readTimeOut;
              }

              /**
               * @return 請求編碼
               * @see com.hengpeng.common.web.HttpRequestProxy#requestEncoding
               */
              public static String getRequestEncoding()
              {
                  return requestEncoding;
              }

              /**
               * @param connectTimeOut 連接超時(毫秒)
               * @see com.hengpeng.common.web.HttpRequestProxy#connectTimeOut
               */
              public static void setConnectTimeOut(int connectTimeOut)
              {
                  HttpRequestProxy.connectTimeOut = connectTimeOut;
              }

              /**
               * @param readTimeOut 讀取數據超時(毫秒)
               * @see com.hengpeng.common.web.HttpRequestProxy#readTimeOut
               */
              public static void setReadTimeOut(int readTimeOut)
              {
                  HttpRequestProxy.readTimeOut = readTimeOut;
              }

              /**
               * @param requestEncoding 請求編碼
               * @see com.hengpeng.common.web.HttpRequestProxy#requestEncoding
               */
              public static void setRequestEncoding(String requestEncoding)
              {
                  HttpRequestProxy.requestEncoding = requestEncoding;
              }
             
              public static void main(String[] args)
              {
                  Map map = new HashMap();
                  map.put("actionType", "1");
          //        map.put("issueId", "33");
                  String temp = HttpRequestProxy.doPost("http://192.168.0.99/AgentPortal/autoHandler", map, "GBK");
                  System.out.println("返回的消息是:"+temp);
                 
              }
          }

          文章來源:http://blog.163.com/ccbobo_cat/blog/static/320994622009616102329953

          posted @ 2011-09-28 13:05 AthrunWang 閱讀(11187) | 評論 (0)編輯 收藏
          僅列出標題
          共8頁: 上一頁 1 2 3 4 5 6 7 8 
          主站蜘蛛池模板: 普兰县| 洪江市| 错那县| 黎城县| 城固县| 东平县| 鹤峰县| 石棉县| 视频| 崇文区| 怀柔区| 邮箱| 威宁| 黎平县| 自治县| 资源县| 巧家县| 通渭县| 宜良县| 田林县| 盖州市| 托里县| 花垣县| 长春市| 昌都县| 仪征市| 康定县| 化德县| 延川县| 讷河市| 兰考县| 阿拉尔市| 古丈县| 拉萨市| 蒙城县| 西昌市| 邮箱| 徐水县| 涞水县| 手机| 基隆市|