URL.java
上传用户:u_thks
上传日期:2022-07-31
资源大小:1910k
文件大小:4k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

Java

  1. /*
  2.  * Created on 2005-9-21
  3.  * Made In GamVan
  4.  */
  5. package com.gamvan.net;
  6. import java.io.BufferedReader;
  7. import java.io.InputStreamReader;
  8. import java.io.UnsupportedEncodingException;
  9. import java.util.Iterator;
  10. import java.util.Map;
  11. import javax.servlet.http.HttpServletRequest;
  12. /**
  13.  * 
  14.  * @author GamVan by 我容易么我
  15.  * Powered by GamVan.com
  16.  */
  17. public class URL{
  18.     /**
  19.      * 对URL中文进行转码 一般get方式查询参数用到
  20.      * @param str 中文字符串
  21.      * @param coder 编码方式,如 UTF-8GBK
  22.      * @return
  23.      */
  24.     public static String urlEncoder(String str, String coder){
  25.         if(str==null){
  26.             return "";
  27.         }
  28.         if(coder==null || coder.equals("")){
  29.             coder = "UTF-8";
  30.         }
  31.         try {
  32.             str = java.net.URLEncoder.encode(str, coder);
  33.         } catch (UnsupportedEncodingException e) {
  34.             str = "";
  35.             e.printStackTrace();
  36.         }
  37.         return str;
  38.     }
  39.     
  40.     
  41.     /**
  42.      * 对URL中文进行反转码,一般get方式查询参数用到
  43.      * @param str 中文字符串
  44.      * @param coder 编码方式,如 UTF-8GBK
  45.      * @return
  46.      */
  47.     public static String urlDecoder(String str, String coder){
  48.         if(str==null){
  49.             return "";
  50.         }
  51.         if(coder==null || coder.equals("")){
  52.             coder = "UTF-8";
  53.         }
  54.         try {
  55.             str = java.net.URLDecoder.decode(str, coder);
  56.         } catch (UnsupportedEncodingException e) {
  57.             str = "";
  58.             e.printStackTrace();
  59.         }
  60.         return str;
  61.     }
  62.     
  63.     /**
  64.      * 取得请求带参数的URL的方法
  65.      * @param request
  66.      * @return
  67.      */
  68.     public static String getUrl(HttpServletRequest request) {
  69.         StringBuffer originalURL = request.getRequestURL();
  70.         Map parameters = request.getParameterMap();
  71.         if (parameters != null && parameters.size() > 0) {
  72.             originalURL.append("?");
  73.             for (Iterator iter = parameters.keySet().iterator(); iter.hasNext();) {
  74.                 String key = (String) iter.next();
  75.                 String[] values = (String[]) parameters.get(key);
  76.                 for (int i = 0; i < values.length; i++) {
  77.                     originalURL.append(key).append("=").append(values[i]).append("&");
  78.                 }
  79.             }
  80.         }
  81.         return originalURL.toString();
  82.     } 
  83.     
  84.     
  85.     /**
  86.      * 取得基于主机名的url,定向根目录的域名。(端口自动识别)
  87.      * @param request
  88.      * @return
  89.      */
  90.     public static String getServerUrl(HttpServletRequest request) {
  91.         String str = "http://" + request.getServerName();
  92.         int port = request.getServerPort();
  93.         if(port!=80){
  94.             str = str + ":" + String.valueOf(port);
  95.         }
  96.         return str;
  97.     } 
  98.     
  99.     
  100.     /**
  101.      * 根据提供的域名地址返回网页html内容
  102.      * @param domain
  103.      * @return
  104.      */
  105.     public static String getWebContent(String domain){
  106.         StringBuffer sb = new StringBuffer();
  107.         try{  
  108.             java.net.URL url = new java.net.URL(domain);
  109.             BufferedReader in =
  110.                 new BufferedReader(new InputStreamReader(url.openStream()));
  111.             String line;
  112.             while((line = in.readLine()) != null){
  113.                 sb.append(line);
  114.             }
  115.             in.close();
  116.             //System.out.println(url.getContent());
  117.         }catch(Exception e) { // Report any errors that arise 
  118.            sb.append(e.toString());
  119.            System.err.println(e); 
  120.            System.err.println("Usage: java HttpClient <URL> [<filename>]"); 
  121.         }  
  122.         return sb.toString();         
  123.     }
  124. }