读书人

url工具种(转)

发布时间: 2012-10-29 10:03:53 作者: rapoo

url工具类(转)

url工具类(转)

    package ssh.util;            import java.io.BufferedReader;      import java.io.InputStreamReader;      import java.io.UnsupportedEncodingException;      import java.net.HttpURLConnection;      import java.net.URL;      import java.net.URLConnection;      import java.net.URLDecoder;      import java.net.URLEncoder;      import java.util.Iterator;      import java.util.Map;            import javax.servlet.http.HttpServletRequest;            /**      * URL工具      * @author gary      *      */      public class URLUtil {                /**          * 对url进行编码          */          public static String encodeURL(String url) {              try {                  return URLEncoder.encode(url, "UTF-8");              } catch (UnsupportedEncodingException e) {                  e.printStackTrace();                  return null;              }          }                    /**          * 对url进行解码          * @param url          * @return          */          public static String decodeURL(String url){              try {                  return URLDecoder.decode(url, "UTF-8");              } catch (UnsupportedEncodingException e) {                  e.printStackTrace();                  return null;              }          }                /**          * 判断URL地址是否存在          * @param url          * @return          */          public static boolean isURLExist(String url) {              try {                  URL u = new URL(url);                  HttpURLConnection urlconn = (HttpURLConnection) u.openConnection();                  int state = urlconn.getResponseCode();                  if (state == 200) {                      return true;                  } else {                      return false;                  }              } catch (Exception e) {                  return false;              }          }                    /**          * 将请求参数还原为key=value的形式,for struts2          * @param params          * @return          */          public static String getParamString(Map<?, ?> params) {              StringBuffer queryString = new StringBuffer(256);              Iterator<?> it = params.keySet().iterator();              int count = 0;              while (it.hasNext()) {                  String key = (String) it.next();                  String[] param = (String[]) params.get(key);                  for (int i = 0; i < param.length; i++) {                      if (count == 0) {                          count++;                      } else {                          queryString.append("&");                      }                      queryString.append(key);                      queryString.append("=");                      try {                          queryString.append(URLEncoder.encode((String) param[i], "UTF-8"));                      } catch (UnsupportedEncodingException e) {                      }                  }              }              return queryString.toString();          }                /**          * 获得请求的路径及参数          * @param request          * @return          */          public static String getRequestURL(HttpServletRequest request) {              StringBuffer originalURL = new StringBuffer(request.getServletPath());              Map<?,?> parameters = request.getParameterMap();              if (parameters != null && parameters.size() > 0) {                  originalURL.append("?");                  originalURL.append(getParamString(parameters));              }              return originalURL.toString();          }                /**          * 抓取网页内容,自动识别编码          * @param urlString          * @return          */          public static String url2Str(String urlString) {              try {                  StringBuffer html = new StringBuffer();                  URL url = new URL(urlString);                  HttpURLConnection conn = (HttpURLConnection) url.openConnection();                  URLConnection c = url.openConnection();                  c.connect();                  String contentType = c.getContentType();                  String characterEncoding = null;                  int index = contentType.indexOf("charset=");                  if(index == -1){                      characterEncoding = "UTF-8";                  }else{                      characterEncoding = contentType.substring(index + 8, contentType.length());                  }                  InputStreamReader isr = new InputStreamReader(conn.getInputStream(), characterEncoding);                  BufferedReader br = new BufferedReader(isr);                  String temp;                  while ((temp = br.readLine()) != null) {                      html.append(temp).append("\n");                  }                  br.close();                  isr.close();                  return html.toString();               } catch (Exception e) {                  e.printStackTrace();                  return null;               }           }                          public static void main(String[] args) {               String content = URLUtil.url2Str("http://www.baidu.com");;               System.out.println(content);           }      }  

读书人网 >编程

热点推荐